我有以下……
package package1; @Service @Qualifier("kb") public class UserService { ... } package package2; @Service @Qualifier("user") public class UserService { ... } @Autowired @Qualifier("user") package2.UserService p2; @Autowired @Qualifier("kb") package1.UserService p1;
但当我尝试运行时,我得到……
org.springframework.beans.factory.BeanDeFinitionStoreException: Failed to parse configuration class [boot.Application]; nested exception is org.springframework.context.annotation.ConflictingBeanDeFinitionException: Annotation-specified bean name ‘userService’ for bean class [package1.UserService] conflicts with existing,non-compatible bean deFinition of same name and class [package2.UserService]
我如何拥有2个同名服务?
解决方法
从类中删除@Qualifier,仅在自动装配时使用@Qualifier
@Service("kb") public class UserService { ... } package package2; @Service("user") public class UserService { ... }
来自@Qualifier javadoc
** * This annotation may be used on a field or parameter as a qualifier for * candidate beans when autowiring. It may also be used to annotate other * custom annotations that can then in turn be used as qualifiers. */
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。