Spring Mvc,如何通过注释覆盖bean定义

时间:2016-06-15 07:24:24

标签: spring-mvc

我有一个带有两个服务的Web应用程序(webapp1),每个服务都继承自一个接口。每个服务都有注释@SERVICE,带有id。 (service1和service2)。 例如对于wervice1,我得到了:

@SERVICE("service1")

使用@AUTOWIRED@QUALIFIER注释将每个服务注入控制器。 现在我有第二个Web应用程序(webapp2),它是通过webapp1上的叠加层制作的。 在webapp2中,我想覆盖service1。我试着这样做:

@PRIMARY
@SERVICE("service1")

我收到错误,因为我有两个具有相同ID的bean(service1和覆盖service1的wervice)。

错误消息为:org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'service1' for bean class [fr.yyy.oav.xxx.service.YyyService1] conflicts with existing, non-compatible bean definition of same name and class [fr.harvest.oav.xxx.service.XxxService1]

我试图使用注释@Bean允许使用名称而不是id是spring禁止在类上使用它。

有没有办法在不使用xml定义的情况下覆盖service1?

感谢

2 个答案:

答案 0 :(得分:0)

尝试在指定的bean标记中使用$(window).on("resize", function(){ if (window.matchMedia("(min-width: 1920px)").matches) { $(".navbar").wrap("<div class='center'></div>"); } else { var content = $(".center").contents(); $(".center").replaceWith(content); } }).trigger("resize"); 。希望这可以正常工作

答案 1 :(得分:0)

我无法使用它,因为service1和service2(都在同一个webapp中)实现了相同的接口,所以它们都是通过使用接口类型注入的。这就是为什么我在限定符上使用id来区分它们。