https://www.cnblogs.com/Leo_wl/p/4459274.html

 

1、加载Spring核心配置文件

//1、加载Spring配置文件,根据创建对对象
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

//2、得到我们配置创建的对象
Book demo=(Book) context.getBean("book");

如果每次都这样加载再new对象,功能可以实现,但是效率很低

2、实现思想:把加载配置文件和创建的过程,在服务器启动的时候完成

实现原理:

(1)ServletContext对象

(2)监听器( Interface  ServletContextListener

  - 在服务器启动的时候,会为每个项目创建一个ServletContext对象

  - 在ServletContext创建的时候,使用监听器可以具体到ServletContext对象在什么时候创建

  - 使用检同期监听到ServletContext对象创建的时候

  - 加载spring配置文件,把配置文件配置对象创建

    - 把创建出来的对象方法放到ServletContext对象里(setAttribute方法

  - 获取对象的时候,到ServletContext域得到(getAttribute方法

 3、Spring整合web的项目演示

(1)演示问题

  action调用service,service调用dao

  每次访问action,都会加载spring的配置文件

(2)解决方法

      1、在服务器启动的时候,创建对象加载配置文件

     2、底层使用监听器,ServletContext

(3)在spring里面,不需要我们自己写代码解决这个问题,已经帮我们封装了

    封装了一个监听器,在web.xml中配置只需要配置监听器

    

   配置监听器之前,导入Spring整合web项目jar  包

     

  指定加载的Spring配置文件的位置

   如果不指定的话会出现下面的异常

    

   解决方法:在web.xml中添加:

     

 

posted on 2017-09-01 16:30  脆皮软心  阅读(202)  评论(0编辑  收藏  举报