@autowired 和 @resource
时间: 2024-09-19 08:17:14 浏览: 34
`@Autowired` 和 `@Resource` 都是在Spring框架中常用的注解,用于依赖注入(DI),简化bean之间的通信和管理。
1. **@Autowired**:这是一个更智能、更强力的注解,通常与构造函数、字段或setter方法配合使用。它会自动寻找匹配类型的bean,并将其注入到需要的地方。例如:
```java
public class MyClass {
private Service service; // 使用@Autowired注解
public MyClass(Service service) {
this.service = service;
}
```
如果Spring容器中有名为“service”的bean,那么它会被自动注入。
2. **@Resource**:这个注解也用于依赖注入,但它的查找规则比@Autowired稍显简单,通常是基于名称、类型或者如果配置了SpEL表达式,还可以基于属性值。`@Resource`支持更简单的配置,但在复杂的注入场景下,可能会显得不够智能。例如:
```java
@Resource(name = "myService") // 注入名为"myService"的bean
private Service myService;
```
阅读全文