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开发弊端 在传统的开发之中,任何一个有实际意义的应用都会由两个或更多的类所组成,这些类之间相互协调来完成特定的业务逻辑,按照传统的做法,每个对象负责管理与自己相互协作的对象(即他所依赖 ...
随机推荐
- Shiro 权限管理filterChainDefinitions过滤器配置
博客转载:http://blog.csdn.net/userrefister/article/details/47807075 /** * Shiro-1.2.2内置的FilterChain * @s ...
- Java常见设计模式之工厂模式
工厂模式在我们日常的应用中应当算是比较广泛的一种设计模式了.今天让我们一起来学习一下,工厂的设计模式. 工厂模式在<Java与模式>中分为三类: 1)简单工厂模式(Simple F ...
- linux命令学习 查找文件和文件夹
1: 查找根目录下查找文件夹名称叫XXXX的目录地址 find / -name XXXX -d 2: 查找/var/www/目录下叫index.php的文件 find /var/www/ -name ...
- 《Kubernetes权威指南第2版》学习(三)RC学习
1 RC文件介绍: kind: ReplicationController,表示是一个RC: spec.selector: RC的Pod标签(Label)选择器,监控和管理拥有这些标签的Pod实例, ...
- Math(2)
Math(2) public static void main(String[] args) { System.out.println(Math.floor(-32.8)); //常数 System. ...
- 服务器修改密码cmd
net user 账号 要修改的密码
- PopupWindow 从底部弹出窗体
第一步 : 初始化PopupWindow private void initPop() { if (view == null) { // 照片 view = View.inflate(Registe ...
- python实现DNA序列字符串转换,互补链,反向链,反向互补链
在生物信息学分析中,经常对DNA序列进行一系列操作,包括子序列截取,互补序列获取,反向序列获取,反向互补序列获取.在python语言中,可编写如下函数完成这些简单功能. 子序列截取 python中对序 ...
- hello markdown
目录 标题 标题1 标题2 标题3 有序列表 无序列表 插入图片 插入链接 粗体.斜体.删除线 引用 表格 代码 目录 新的开始 希望能够坚持下去 cnblogs也支持markdown 之前看了写ma ...
- 【service调用dao层传参的三种方式】
第一种方案:默认数组角标: service Public User selectUser(String name,String area); mapper: <select id="s ...