要通过一个静态方法注入一个静态变量,使用@Resouce还是@Autowired
时间: 2024-05-01 15:23:03 浏览: 89
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
使用@Autowired注解可以实现静态变量的注入。但是需要注意的是,@Autowired注解默认是按照类型进行注入,而静态变量没有具体的实例对象,所以无法按照类型注入。因此,需要在@Autowired注解中指定bean名称,例如:
```
@Component
public class MyComponent {
private static MyService myService;
@Autowired
public void setMyService(MyService myService) {
MyComponent.myService = myService;
}
}
```
通过@Autowired注解的setMyService方法,将MyService实例对象注入到静态变量myService中。需要注意的是,这种方式只能注入一次,因为静态变量是类级别的,所有实例共享同一个静态变量。
阅读全文