@Component
public class MyBean {
public void fun() {
System.out.println("my bean fun");
}
}
方法一:使用set方法注入
@Component
public class StaticBean {
private static MyBean myBean;
public static void fun() {
myBean.fun();
}
@Autowired
public void setMyBean(MyBean MyBean) {
myBean = MyBean;
}
}
方法二:使用@PostConstruct+spring上下文获取bean
@Component
public class StaticBean {
private static MyBean myBean;
public static void fun() {
myBean.fun();
}
@PostConstruct
public void init() {
myBean = applicationContext.getBean(MyBean.class);
}
}
方法三:使用@PostConstruct+@Autowired注入
@Component
public class StaticBean {
@Autowired
private MyBean injectMyBean;
private static MyBean myBean;
public static void fun() {
myBean.fun();
}
@PostConstruct
public void init() {
myBean = injectMyBean;
}
}
方法四:通过构造函数注入
@Component
public class StaticBean {
@Autowired
private MyBean injectMyBean;
private static MyBean myBean;
public static void fun() {
myBean.fun();
}
@Autowired
public StaticBean(MyBean myBean) {
StaticBean.myBean = myBean;
}
}