spring在web项⽬中ApplicationContext容器的实例化
实例化bean的三种方式
spring IoC设计的核⼼是Bean容器,BeanFactory采⽤了java的⼯⼚模式,通过从XML配置⽂件中读取JavaBean的定义,来实现JavaBean 的创建、配置和管理。所以BeanFactory可以成为IoC容器。⽽ApplicationContext扩展了BeanFactory容器并添加了对国际化、资源访问、事件传播等⽅⾯有良好的⽀持可以应⽤在java App和java Web中。在java项⽬中通过ClassPathXMLApplicationContext类⼿⼯实例化ApplicationContext容器⼗分合适。但是对于web项⽬就不⾏了,web项⽬的启动是由相应的web服务器负责的。因此,在web项⽬中ApplicationContext容器的实例化⼯作最好由web服务器来完成。
spring提供两种⽅式
(1)基于ContextLoaderListener实现。
<!--指定spring配置⽂件的位置,多个配置⽂件以逗号分隔-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>l</param-value>
</context-param>
<!--指定以listener⽅式启动spring容器-->
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
(2)基于ContextLoaderServlet实现。
<!--指定spring配置⽂件的位置,多个配置⽂件以逗号分隔-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>l</param-value>
</context-param>
<!--指定以Servlet⽅式启动spring容器-->
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.t.ContextLoaderServlet</servlet-class>
<!--load-on-startup的含义就是其中的参数⼤于等于零的时候表⽰容器在启动的时候就加载这个servlet-->
<load-on-startup>1</load-on-startup>
</servlet>