



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring是一个轻量级的容器。Spring还有自己的MVC模式,有自己的框架、拦截器等,Spring的框架不只是依赖于Spring,可以和其他框架无缝的结合使用。如:Struts/Struts2+Hibernate/Ibatis+Spring。Spring其实真的很强大!Spring的核心:IOC(控制反转)和AOP(面向切面编程)。IOC(控制反转):也叫DI(依赖注入)。对象和对象之间的关系不再由JVM(java虚拟机)来管理,而是都交给Spring管理,这就叫控制反转。需要用DI(依赖注入)来实现,即把类和类的关系配置到Spring的配置文件applicationContext.xml,这些类在容器初始化的时候就创建完成,每次用的时候容器直接提供,而不是像以前需要自己创建(new)。Spring实现控制反转利用了java的反射机制。使用控制反转机制可以提高代码的复用,提高代码运行的效率,降低了代码之间的耦合度。如何理解降低了代码之间的耦合度呢?即:实现依赖于抽象,而不是抽象依赖于实现。通过对外提供统一的接口,把接口的实现注入到容器,每次调用的是接口而不是接口的实现,这样每次业务逻辑有改动的时候就不需要去修改大量的业务代码而只是修改一下配置文件就可以了;如何理解提高了代码的复用呢?即:在一个项目中有可能多次用到同一个方法,那么只需要把此方法声明成一个接口,再实现这个接口,把接口的实现注入到容器,每次用的时候从容其中取就行了;提高了代码的运行效率就更好理解了,即:每次用到的对象直接从容器中取,而不是再自己创建(new是很消耗系统内存的),自然就提高了运行效率。AOP(面向切面编程):这是一种思想,而不是一种方法的实现。利用JDK的动态代理的方式统一的给程序添加某一方法(如:事务的管理,权限的管理,日志的管理)。使用AOP不仅提高了代码的复用,也降低了代码之间的耦合度。Spring的MVC:即Model(模型层)+View(视图层)+Controller(控制层)。Controller的核心其实是个Servlet(DispatcherServlet),又叫前端控制器,用来拦截用户的请求,只要是符合的请求(需要在web.xml文件里配置,如:*.do)都会被拦截,然后交给org.springframework.web.servlet.handler.SimpleUrlHandlerMapping处理,SimpleUrlHandlerMapping根据映射找到相关的类,就把请求交给这个类(后端控制器)处理,这个类会返回一个ModelAndView对象,交给org.springframework.web.servlet.view.InternalResourceViewResolver处理视图,最后返回给用户。具体的文件配置和实例查看其它资料,这里只说原理。Spring的拦截器:可以自己定义拦截器,需要继承HandlerInterceptorAdapter,重写三个方法,即preHandle(),postHandle(),afterCompletion();发起请求,进入拦截器链,运行所有拦截器的preHandle方法,1.当preHandle方法返回false时,从当前拦截器往回执行所有拦截器的afterCompletion方法,再退出拦截器链。2.当preHandle方法全为true时,执行下一个拦截器,直到所有拦截器执行完。再运行被拦截的Controller。然后进入拦截器链,运行所有拦截器的postHandle方法,完后从最后一个拦截器往回执行所有拦截器的afterCompletion方法.当有拦截器抛出异常时,会从当前拦截器往回执行所有拦截器的afterCompletion方法。Spring的注入方式:Set注入(比较常用)和构造注入(index是构造方法的参数的索引,从0开始;value是参数的值)Spring中Bean的生命周期:Bean的创建、Bean的初始化、Bean的调用、Bean的销毁。1、Bean的创建:在配置文件中创建2、Bean的初始化:三种方法(通过配置文件、实现InitializingBean接口、PostConstruct)。配置文件:要现在类里声明一个方法如init(),然后在配置文件里加上init-method=init实现InitializingBean接口:重写afterPropertiesSet方法PostConstruct:这是基于注解的方式,这样的方式可以加在多个方法上,初始化Bean的时候可以执行多个方法。3、Bean的调用:就是类的调用,在配置文件里要写类的全路径4、Bean的销毁: 三种方法(通过配置文件、实现DisposableBean接口、PreDestroy)配置文件:要现在类里声明一个方法如clean(),然后在配置文件里加上distroy-method=clean实现DisposableBean接口:重写distory方法PreDestroy:这是基于注解的方式,这样的方式可以加在多个方法上,销毁Bean的时候可以执行多个方法。Spring的自动装配(Autowire):共有5种方式。使用Spring的自动装配大大减少了对配置文件的配置工作,程序员开发效率会有所提高,但是降低了类之间的关系的透明性,不利于后期的维护工作,在大中型的项目中不推荐使用Spring的自动装配。1、 byName:根据属性的名字的方式查找JavaBean并为其注入。如果配置文件里有两个属性的名字(ID)相同就会抛出不可恢复的异常。2、 byType:根据属性的类型的方式查找JavaBean并为其注入。如果配置文件里有两个属性的类型相同就会抛出不可恢复的异常。3、 construct:根据构造函数的方式查找JavaBean并为其注入。JavaBean必须写构造函数。构造函数是private的也可以。4、 Autodetect:集成了byType和construct两种装配方式,而construct的优先级比较高,即:如果JavaBean中既有set方法也有构造方法,而且在配置文件里选用autodetect的装配方式,那么Spring会自动选择construct的装配方式。5、 no:不使用自动装配。默认方式就是no。6、 default:由的上级标签的属性default-autowire决定Spring的依赖检查(dependency-check):有四种方式。Spring的依赖检查是为自动装配设计的,在使用自动装配的时候,如果有的属性自动装配不成功的话,程序员很难看出错误出现在什么地方,这时候用依赖检查就可以检查出错误。1、 simple方式:只检查简单的数据类型,如String、int等。2、 objects方式:只检查对象类型。3、 all方式:检查所有的数据类型。4、 none:不进行依赖检查,Spring默认的就是这种方式。Spring的注解:有越来越流行的趋势,不用在代码和配置文件之间来回切换,减少了配置文件的配置工作量,提高了开发效率。需要在配置文件(applicationContext.xml)中加上,加上这一句就不用加了,当然,加上也不会报错,只是没有必要而已。在引用的属性(对象的实例)上面加上Resourc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区干部团建活动方案策划
- 传统店铺装修咨询方案
- 团建场地咨询报价方案
- 施工方案咨询意见
- 合肥铁路声屏障施工方案
- 景区直播营销策划方案
- 在线自学行业市场需求与分析
- 梁-拱组合结构施工方案
- 2023年度自考专业(汉语言文学)模拟试题含完整答案详解(夺冠系列)
- 2024年中医助理医师自我提分评估及答案详解【各地真题】
- 湖南信息职业技术学院2025年单独招生考试职业技能测试D组考试大纲(应届普通高中毕业考生、退役军人)
- (完整版)外国美术史
- 《第5课 插入图片秀美景》参考课件
- 2024年秋季新苏教版一年级上册数学全册教案
- 小学数学五年级上册简便计算68道题(含详细规范标准答案)
- 光伏租赁用电协议书(2篇)
- T-GXAS 586-2023 毛发中依托咪酯、依托咪酯酸的测定 液相色谱-串联质谱法
- 体育行业智能赛事组织与运营服务方案
- 天然香料浸膏加工技术规范征求意见稿
- 《国际贸易实务》课件第1章
- 山东济南高新区2024-2025学年七年级英语第一学期期中考试试题(含答案)
评论
0/150
提交评论