spring整合web项目原理
1.加载spring核心配置文件
ApplicationContext context=
new ClassPathXmlApplicationContext("bean1.xml");
(1.)new对象,功能可以实现,效率很低
2.思想思想 把加载配置文件和创建对象过程,在服务器启动时候完成
3.实现原理
(1)ServletContext对象
(2)监听器
(3)具体使用
在服务器启动的时候,为每个项目创建一个ServletContext对象
在ServletContext对象创建时候,使用监听器都可以具体到ServletContext对象在什么时候创建
使用监听器监听到ServletContext对象创建时候
加载spring配置文件,把配置文件配置对象创建
把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
获取对象时候,到ServletContext域得到(getAttribute方法)
1演示问题
(1).action调用service,service调用dao
每次访问action时候,都会加载spring配置文件
2.解决方案
(1)在服务器启动是,创建对象加载配置文件
(2)底层使用监听器,Servletcontext 对象
3.在spring里面不需要我们自己写代码实现。要封装
(1)封装一个监听器,只需要配置监听器就可以了
(2)在web.xml
需要导入Spring整合web项目的jar包,才能配置监听器
spring-web-4.2.4.RELEASE.jar
<!-- 配置监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 指定加载Spring核心配置文件的位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:bean.xml</param-value>
</context-param>