Spring Boot 项目中 ServiceImpl 重复读取 Bean 对象的原因是什么?

ID:17170 / 打印

spring boot 项目中 serviceimpl 重复读取 bean 对象的原因是什么?

spring-boot项目serviceimpl中重复读取bean对象

在springboot项目中,当注入service层时,发现多次读取bean对象,并报错。这是怎么回事呢?

查看代码,发现使用了@resource注解注入mapper和service,代码如下:

@service public class userserviceimpl implements userservice {      @resource     private usermapper usermapper;      @resource     private roleservice roleservice; }

@resource注解是一种依赖注入方式,它默认通过名称进行注入。当同类型的bean有多个时,会报重复注入的错误。

为了解决这个问题,需要指定bean的名称,或者使用@autowired注解注入,例如:

@service public class userserviceimpl implements userservice {      @autowired     private usermapper usermapper;      @autowired     private roleservice roleservice; }

@autowired注解默认按类型注入,当bean类型唯一时,无需指定bean名称。

对于多重依赖注入的情况,可以使用@qualifier("beanname")注解指定bean名称,例如:

@Service public class UserServiceImpl implements UserService {      @Autowired     @Qualifier("userMapper1")     private UserMapper userMapper;      @Autowired     @Qualifier("roleService2")     private RoleService roleService; }

通过以上方法,可以解决spring-boot项目中serviceimpl中重复读取bean对象的问题。

上一篇: Java 导入时遇见 static 详解:什么是静态导入,它有什么作用?
下一篇: 为什么Java接口中会出现默认方法、静态方法和私有方法?

作者:admin @ 24资源网   2024-11-27

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。