我看到 Spring bean 和其他常规类都可以访问 spring 应用程序上下文。
我想知道为什么一个类必须处理 Spring 上下文。我的理解是,在 main 方法中,您引导您的应用程序,从那一点开始的所有内容都由 Spring 连接。
如果是这样,main 方法应该是唯一需要 ApplicationContext 的地方。您需要 Spring 上下文来完成工作的其他真实案例有哪些?
最佳答案
通常bean不需要访问ApplicationContext
直接。
但是,有些情况下需要直接访问。例如:
在运行时访问由其名称标识的 bean:
class MyClass implements ApplicationContextAware { ... public void execute(String actionName) { Action action = applicationContext.getBean(actionName); action.execute(); } ... }
将自定义参数传递给
prototype
的构造函数- 运行时范围内的 bean:Bean bean = applicationContext.getBean("myBean", "foo", "bar");
请注意,如果
Bean
的构造函数不需要在运行时传递自定义参数,您可以注入(inject)ObjectFactory<Bean>
相反。使用
AutowireCapableBeanFactory
触发第三方对象的 Autowiring .
关于java - 为什么一个类需要访问 Spring 上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11589279/