我正在尝试使用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 anotation,我也不知道该怎么做了。 (我还在学英语,对任何错误都很抱歉)
答案 0 :(得分:0)
实际上,我需要创建一个抽象类的通用实例,然后使用限定符注释,所以我创建了:
@Service
public class GenericService extends AbstractServiceService {
.
.
.
}
然后,在abstractController我改变了属性:
@Autowired
@Qualifier("genericService")
private AbstractService serviceAbs;
感谢Basil Battikhi,他的消化确实让我找到了其他一些注释。