Spring学习(六)整合web开发
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中添加:

Spring学习(六)整合web开发的更多相关文章
- spring学习(四) ———— 整合web项目(SSH)
清楚了spring的IOC 和 AOP,最后一篇就来整合SSH框架把,记录下来,以后应该会用的到. --WH 一.web项目中如何使用spring? 当tomcat启动时,就应该加载spring的配置 ...
- spring学习(五) ———— 整合web项目(SSM)
一.SSM框架整合 1.1.整合思路 从底层整合起,也就是先整合mybatis与spring,然后在编写springmvc. 1.2.开发需求 查询商品列表(从数据库中查询) 1.3.创建web工程 ...
- Spring学习(六)--渲染Web视图
一.将模型数据渲染为Html 在上一篇文章中,我们所编写的控制器方法都没有直接产生浏览器中渲染所需的HTML.这些方法只是将数据填充到模型中,然后将模型传递给一个用来渲染的视图.这些方法会返回一个St ...
- Spring Boot 整合 Web 开发
这一节我们主要学习如何整合 Web 相关技术: Servlet Filter Listener 访问静态资源 文件上传 文件下载 Web三大基本组件分别是:Servlet,Listener,Filte ...
- day38 19-Spring整合web开发
整合Spring开发环境只需要引入spring-web-3.2.0.RELEASE.jar这个jar包就可以了,因为它已经帮我们做好了. Spring整合web开发,不用每次都加载Spring环境了. ...
- Spring整合web开发
正常整合Servlet和Spring没有问题的 public class UserServlet extends HttpServlet { public void doGet(HttpServlet ...
- Spring Boot 系列(六)web开发-Spring Boot 热部署
Spring Boot 热部署 实际开发中,修改某个页面数据或逻辑功能都需要重启应用.这无形中降低了开发效率,所以使用热部署是十分必要的. 什么是热部署? 应用启动后会把编译好的Class文件加载的虚 ...
- Spring学习6-Spring整合Struts2
一.Spring为什么要整合Struts2 Struts2与Spring进行整合的根本目的就是要让 Spring为Struts2的Action注入所需的资源对象,它们整合的原理则是只要导入了s ...
- Spring学习(一)--简化Java开发,认识Spring
一.传统Java开发弊端 在传统的开发之中,任何一个有实际意义的应用都会由两个或更多的类所组成,这些类之间相互协调来完成特定的业务逻辑,按照传统的做法,每个对象负责管理与自己相互协作的对象(即他所依赖 ...
随机推荐
- 数据库JSON字段设计思路
任务的阶段信息直接存储为JSON格式,这种格式避免了表关联,避免建表,应用层处理也简单的多了. 1. JSON内容为信息性质,而不具备非统计功能:简单讲就是展示,不能用于深度处理: 2. JSON内容 ...
- 低调的css3属性font-size-adjust
在我们日常的项目中经常会用到不同的字体来达到我们想要的效果,可是某些情况下不同字体的大小在相同的px下显示的大小是不同的 <div id="div1">Text 1&l ...
- HTML5对表单的约束验证
在HTML5中增加了许多新的功能,用于表单提交到服务器之前对表单进行数据的验证(抢了javascript的饭碗),有了这些功能,即便是javascript没有加载进来还是可以确保基本的验证.换句话说, ...
- 查看Linux内核版本的命令
方法一: 命令: uname -a 作用: 查看系统内核版本号及系统名称 方法二: 命令: cat /proc/version 作用: 查看目录"/proc"下version ...
- tar 排除某个目录
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat
- Javascript作用域和变量提升
下面的程序是什么结果? var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); 结果是10: 那么 ...
- 【总结整理】javascript进阶学习(慕课网)
数组 数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数值. 二维数组 二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: ...
- Flask17 Flask_Script插件的使用
1 什么是Flask_Script 可以对flask应用做一些统一的操作 flask_script官网:点击前往 2 安装flask_script pip install -i https://pyp ...
- jquery选择器中的find和空格,children和>的区别、及父节点兄弟节点,还有判断是否存在的写法
一.find和空格,children和>及其它的区别 空格:$('parent childchild')表示获取parent下的所有的childchild节点(所有的子孙). 等效成 = ...
- Access denied for user 'xxx'@'localhost' 问题的解决方法
使用SpringMvc + Mybatis + Mysql搭建的架构,调试时出现了以下错误: HTTP Status 500 - Request processing failed; nested e ...