创建一个工具类
@Component
public class SpringBeanOperator implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
if(applicationContext == null){
applicationContext = context;
}
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
/**
* 注入对象
*/
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}
/**
* 通过名称注入
* /
public static final Object getBean(String beanName) {
return getApplicationContext().getBean(beanName);
}
}
使用
public class TestOperator {
//非Bean的类这样注入是空的
// @Autowired
// private TestService testService;
// @Autowired
// private TestManager testManager;
//使用工具类解决
private TestService testService= SpringBeanOperator.getBean(TestService .class);
private TestManager testManager = SpringBeanOperator.getBean(TestManager .class);
}
原有的采用@Autowired注入因为普通类无法注入
可以改为使用工具类获得它的bean对象