【发布时间】:2018-03-22 15:50:48
【问题描述】:
我正在尝试使用 Spring 制作 Web 应用程序,并且我的类(控制器和服务)正在使用抽象来避免代码重复。知道了,这就是我的结构:
public abstract class AbstractController {
@Autowired
private AbstractService serviceAbs;
.
.
.
}
@Controller
@RequestMapping(value = "/webService")
public class Service1Controller extends AbstractController {
@Autowired
Service1Service service;
@RequestMapping(value = { "..." })
public final ModelAndView addService(...) {
}
.
.
.
}
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class AbstractService {
@Autowired
protected ServiceDAO serviceDAO;
public final ModelAndView addService(...) {
}
.
.
.
}
@Service
public class Service1Service extends AbstractService {
.
.
.
}
这很好用,但是当我尝试将另一个孩子添加到 AbstractService 时,Spring 无法工作,即使我使用 Qualifier 注释,我也不知道该怎么办了。 (我还在学英语,如有错误请见谅)
【问题讨论】:
-
您需要在其中一个子类中添加
@Primary注解 -
去掉抽象服务上的@Service
-
为什么
AbstractService会成为@Service服务??
标签: java spring abstraction