@Autowired 在构造方法上与属性上的区别
时间: 2024-03-23 17:16:06 浏览: 12
@Autowired 注解可以用来自动装配 Spring 容器中的 Bean,它可以被用在构造方法、属性和方法上。
在构造方法上,@Autowired 注解可以告诉 Spring 在创建 Bean 时自动装配依赖的组件。例如:
```
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
}
```
在上面的例子中,MyService 类依赖于 MyRepository 类。通过在构造方法上添加 @Autowired 注解,Spring 可以自动装配 MyRepository 类的实例并注入到 MyService 中。
在属性上,@Autowired 注解可以告诉 Spring 自动装配依赖的组件。例如:
```
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
}
```
在上面的例子中,MyService 类依赖于 MyRepository 类。通过在属性上添加 @Autowired 注解,Spring 可以自动装配 MyRepository 类的实例并注入到 MyService 中。
总的来说,构造方法上的 @Autowired 注解可以确保 Bean 在创建时就完成了依赖注入,而属性上的 @Autowired 注解可以确保 Bean 在创建后再进行依赖注入。