spring 中可以通过beanfactory 和ApplicationContext 这两个类进行创建bean组件两者的具体区别是什么呢
1.beanfactory 延迟注入,当使用某个bean的时候才会注入,所以启动时会更快,启动后占用更少的内存
2.applicationcontext 会一次性创建所有的bean,不但有beanfactory功能且扩展了以下功能
1) 国际化(MessageSource)
2) 访问资源,如URL和文件(ResourceLoader)
3) 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
4) 消息发送、响应机制(ApplicationEventPublisher)
5) AOP(拦截器)
ApplicationContext的三个实现类:
ClassPathXmlApplication
:把上下文文件当成类路径资源。FileSystemXmlApplication
:从文件系统中的 XML 文件载入上下文定义信息。XmlWebApplicationContext
:从Web系统中的XML文件载入上下文定义信息。