@Autowired和@Resource的代码实例
时间: 2023-10-08 12:06:02 浏览: 86
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
@Autowired和@Resource都是用来进行依赖注入的注解,它们的使用方法类似,但是有一些细微的差别。
@Autowired注解:
- 可以用在构造方法、属性、方法、方法参数上。
- 如果有多个同类型的Bean,可以使用@Qualifier指定具体的Bean。
- 默认情况下,Bean是必须存在的,如果找不到对应的Bean,会抛出异常。如果希望允许不存在对应的Bean,可以使用required=false。
- 可以使用@Autowired(required=false)进行注解。
@Resource注解:
- 可以用在属性、方法、方法参数上。
- 默认情况下,按照名称进行装配,如果找不到对应名称的Bean,会抛出异常。可以使用@Resource(name="beanName")指定具体的Bean。
- 不支持required=false。
下面是一个使用@Autowired和@Resource进行依赖注入的代码示例:
```java
@Service
public class UserServiceImpl implements UserService {
// 使用@Autowired注解进行依赖注入
@Autowired
private UserDao userDao;
// 使用@Resource注解进行依赖注入
@Resource(name = "userDao")
private UserDao userDao2;
// 构造方法注入
private UserDao userDao3;
@Autowired
public UserServiceImpl(UserDao userDao3) {
this.userDao3 = userDao3;
}
// 方法注入
private UserDao userDao4;
@Autowired
public void setUserDao4(UserDao userDao4) {
this.userDao4 = userDao4;
}
// 方法参数注入
@Override
public void addUser(@Autowired UserDao userDao) {
userDao.addUser();
}
}
```
阅读全文