BeanFactory与ApplicationContext区别
由类图可以看出ApplicationContext是BeanFactory的子接口,对BeanFactory额外的拓展了一些功能。
debug看下可以看到BeanFactory,可以理解为,核心容器也是BeanFactory。
BeanFactory是什么:
1、BeanFactory是ApplicationContext的父接口。
2、ApplicationContext的实现都基于BeanFactory进行了功能的组合。
BeanFactory作用:
1、表面上只有getBean
2、实际上控制反转、基本的依赖注入、直至Ban的生命周彻的各种功能,都由它的实现类提供。
ApplicationContext
1、MessageSource 接口是国际化,用来翻译不同的语言。浏览器发送请求时请求头中会携带当前网页的语言信息,MessageSource接口的实现类会根据请求头的信息进行一个翻译。
2、ResourPatternResolver(通配符匹配资源路径) 接口的实现可以通过通配符获取一个或者多个资源文件
3、EnvironmentCapable (环境信息,系统环境变量)接口的实现类作用是获取配置信息。
4、ApplicationEventPublisher(发布事件对象)
ApplicationEventPublisher 中的publishEvent方法最大的作用是用来解耦。