问题
有时候我们难免要用到一些工具类,这些工具类通常都是静态变量。
回忆spring开发,我们都是使用@Autowired实现属性的注入,但是不支持静态属性注入。
@Autowired
private static ClassType className;
因为静态变量不是对象的属性是一个类的属性属性
解决
因此我们通过修改 set方法
就可以实现
User.java
@Component
public class User {
@Value("luckyFang")
public String name;
}
Config.java
@Configuration
@ComponentScan("org.example")
public class Config {
}
Test.java
@Component
public class Test {
private static User user;
// 修改 set方法实现 静态注入
@Autowired
public void setUser(User user) {
Test.user=user;
}
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
System.out.println(user);
}
}