怎么使用Annotation.autowired
时间: 2024-05-11 09:17:02 浏览: 54
Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)
在Java中,@Autowired是Spring框架提供的一种依赖注入方式。使用@Autowired注解可以自动将一个bean注入到另一个bean中,而不需要手动编写注入代码。
使用@Autowired注解的方式很简单,只需要在需要自动注入的属性、构造函数或方法上添加@Autowired注解即可。当Spring容器在创建bean时,会自动寻找匹配的bean,并将其注入到使用@Autowired注解的位置。例如:
```
@Service
public class UserService {
@Autowired
private UserDao userDao; // 自动注入UserDao
// ...
}
```
在上面的代码中,UserService类中使用@Autowired注解将UserDao自动注入进来。当Spring容器创建UserService实例时,会自动注入一个UserDao实例。
需要注意的是,@Autowired注解默认是按照类型(class)进行注入的。如果容器中存在多个类型相同的bean,则会抛出异常。如果需要按照名称(name)进行注入,则可以结合@Qualifier注解使用,例如:
```
@Service
public class UserService {
@Autowired
@Qualifier("userDaoImpl") // 按照名称注入UserDaoImpl
private UserDao userDao;
// ...
}
```
在上面的代码中,@Qualifier注解指定了要注入的bean的名称为"userDaoImpl",这样Spring容器就会按照名称匹配的方式注入UserDaoImpl实例,而不是根据类型匹配。
当然,@Autowired注解也可以用在构造函数和方法上,例如:
```
@Service
public class UserService {
private UserDao userDao;
@Autowired
public UserService(UserDao userDao) { // 构造函数注入
this.userDao = userDao;
}
@Autowired
public void setUserDao(UserDao userDao) { // setter方法注入
this.userDao = userDao;
}
// ...
}
```
在上面的代码中,构造函数和setUserDao方法上均使用了@Autowired注解,这样Spring容器就会自动注入UserDao实例。
阅读全文