为何在springboot中获取ApplicationContext很不简洁?

我的期望:

@Autowired
private static ApplicationContext context
//import org.springframework.context.ApplicationContext;

但实际上并不能这么做。。

我在网上搜索了一下,各种方法虽然也不是说会增加很多代码,其都可以说是不简洁的。比如实现ApplicationContextAware接口之类的。

这就让我觉得很奇怪,难道在Spring Boot 中,使用getBean()方法是一件不应该发生的事情么?

那比如说工厂模式,要怎么整?工厂模式返回的实例中包含需要@Autowired的成员变量,因此各个实例必然是@Component且交给Spring管理,不可能靠反射或者new出来来返回。这里就必然要用到applicationContext.getBean()了吧?

而在一个大型项目中不会采用工厂模式?springboot不推荐工厂模式?就很奇怪。。

阅读 2.6k
1 个回答

如果你需要拿到ApplicationContext实现想要的功能,就去拿
如果你只是想拿到bean,就声明bean,不需要拿ApplicationContext

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题