@Resource 和 @Autowired 区别
1. @Resource 默认通过名称注入 ,如名称无找到则通过类型注入
2. @Autowired 默认通过类型注入,如存在多个类型则通过名称注入
//@Resource 默认通过名称注入 ,如名称无找到,则通过类型注入
@Resource
private IUserService userService;
存在一个实现类: UserServiceImpl.java 自动注入UserServiceImpl 实现
例二
如果存在多个实现类:UserServiceImpl.java 、 UserServiceImpl4.java 则抛出异常(org.springframework.beans.factory.BeanCreationException)
优先名称未找到,按照类型有多个,所以指定名称即可 @Resource(name = "userServiceImpl")
例三
如果存在多个实现类:UserServiceImpl.java 、 UserService.java 则根据名称注入UserService.java实现
优先名称找到UserService,但是想指定UserServiceImpl 指定名称即可 @Resource(name = "userServiceImpl")
@Autowired
//默认通过类型注入,如存在多个类型则通过名称注入
@Autowired
private IUserService userService;
例一
存在一个实现类: UserServiceImpl.java 自动注入UserServiceImpl 实现
例二
如果存在多个实现类:UserServiceImpl.java 、 UserServiceImpl2.java 则抛出异常
@Autowired
@Qualifier("userServiceImpl")
private IUserService userService; 指定名称不会报错
例三
如果存在多个实现类:UserServiceImpl.java 、 UserService.java 则根据名称注入UserService.java实现
@Resource 由jdk提供
@Autowired 由spring提供
@Autowired 可与 @Qualifier配套使用 而 @Resource自己单独使用
@Autowired(required=false):表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错 默认是true 没有就会报错

浙公网安备 33010602011771号