以前想要获取applicationContext, 在网上搜索后也很麻烦,不好用.
今天在看spring文档时, 发现文档上写了一种很简单的获取方法(Spring Framework Version: 4.3.21.RELEASE):
您还可以将 @Autowired 用于众所周知的可解析依赖项的接口: BeanFactory , ApplicationContext , Environment , ResourceLoader , ApplicationEventPublisher 和 MessageSource 。这些接口及其扩展接口(如 ConfigurableApplicationContext 或 ResourcePatternResolver )将自动解析,无需特殊设置。
public class MovieRecommender {
@Autowired
private ApplicationContext context;
public MovieRecommender() {
}
// ...
}
下面还有一行小注释:
@ Autowired,@ Inject,@ Resource和@Value注释由Spring BeanPostProcessor实现处理,这反过来意味着您不能在自己的BeanPostProcessor或BeanFactoryPostProcessor类型(如果有)中应用这些注释。必须通过XML或使用Spring @Bean方法显式地“连接”这些类型。
不能自动装配BeanPostProcessor
和BeanFactoryPostProcessor
类型, 不过问题不大, 反正我也不认识这两个类型.(逃
直接@Autowired就可以获取到了, 以前只知道ApplicationContext是IOC容器, 现在知道其竟然可以被自动装配. 这种方法确实要简单很多, 也好记很多.