我的期望:
@Autowired
private static ApplicationContext context
//import org.springframework.context.ApplicationContext;
但实际上并不能这么做。。
我在网上搜索了一下,各种方法虽然也不是说会增加很多代码,其都可以说是不简洁的。比如实现ApplicationContextAware
接口之类的。
这就让我觉得很奇怪,难道在Spring Boot 中,使用getBean()
方法是一件不应该发生的事情么?
那比如说工厂模式,要怎么整?工厂模式返回的实例中包含需要@Autowired
的成员变量,因此各个实例必然是@Component
且交给Spring管理,不可能靠反射或者new出来来返回。这里就必然要用到applicationContext.getBean()
了吧?
而在一个大型项目中不会采用工厂模式?springboot不推荐工厂模式?就很奇怪。。
如果你需要拿到
ApplicationContext
实现想要的功能,就去拿如果你只是想拿到bean,就声明bean,不需要拿
ApplicationContext