抽象和春天 - 多个孩子

时间:2018-03-22 15:50:49

标签: java spring abstraction

我正在尝试使用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,我也不知道该怎么做了。 (我还在学英语,对任何错误都很抱歉)

1 个答案:

答案 0 :(得分:0)

实际上,我需要创建一个抽象类的通用实例,然后使用限定符注释,所以我创建了:

@Service
public class GenericService extends AbstractServiceService {
    .
    .
    .
}

然后,在abstractController我改变了属性:

@Autowired
@Qualifier("genericService")
private AbstractService serviceAbs;

感谢Basil Battikhi,他的消化确实让我找到了其他一些注释。