
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对象的问题。










