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中添加:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步