Spring4总结
1. 明确Spring的主要作用就是为代码“解耦”,降低代码间的耦合度。使用IoC使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了,而是由Spring容器统一管理,自动“注入”;使用AOP使得系统级服务得到了最大的复用,且不用再由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由Spring容器统一完成“织入”。
2. 明确IoC(控制反转)是对对象控制权的转移,从程序代码本身反转到了外部容器,由外部容器来实现对象的装配和管理,其不能使用在分布式系统中。即其所依赖的反转到的外部容器,必须要与控制权出让方同处于一个 JVM 中;
IoC是一种思想,比较流行的实现方式有两种:依赖查找和依赖注入,Spring使用的是依赖注入。
3. 明确Bean的装配,创建Bean对象的方式有三种:getBean()方式、动态工厂Bean方式、静态工厂Bean方式。
4. 明确Bean的作用域:singleton、prototype、request、session、global session,了解Bean的生命周期,分为11步,明确其中的Bean后处理器和Bean的定制生命始末。
5. 明确基于XML的依赖注入方式和基于注解的依赖注入方式,重点关注域属性注入的byName和byType。若注解与 XML 同用,XML 的优先级要高于注解。这样做的好处是,需要对某个 Bean做修改,只需修改配置文件即可。当然,此时,Bean 类要有 setXXX() 或构造器。
6. 明确AOP的底层是动态代理(JDK的动态代理或CGLIB动态代理),AOP的知识点有:切面、织入、连接点、切入点、目标对象、通知和顾问;
通知有前置通知、后置通知、环绕通知、异常处理通知,通知只能指定织入的时间点,同时会织入目标类的所有方法;
没主业务接口的时候使用CGLIB动态代理,有主业务接口也可以指定使用CGLIB动态代理(有时候,CGLIB动态代理比JDK的动态代理高效);
顾问对通知进行了包装,既能指定织入的时间点,又能指定织入的位置(具体织入目标类的哪个方法);
代理的生成方式有三种:
1. 由 ProxyFactoryBean 代理工具类生成,一个代理对象只能代理一个Bean,同时在客户端使用的是代理对象的id。
2. 由默认 advisor 自动代理生成器生成,将所有的目标对象与 Advisor 自动结合,生成代理对象。无需给生成器做任何的注入配置。注意,只能与 Advisor 配合使用。
3. 由 Bean 名称自动代理生成器生成,根据 bean 的 id,为符合相应名称的类生成相应代理对象,既能与 Advice ,又能与 Advisor 配合使用。
注意:增强的方法不能是final的。
7. 明确AspectJ对AOP的实现,也分成基于注解的方式和基于XML的方式,其中基于XML的方式是Spring实现AOP的最常用方法,注意AspectJ有六种通知,多了最终通知和引用通知。
8. 了解Spring的JDBC模板是Ioc应用的示例,将数据源 DataSource 对象和 JDBC 模板对象注入给了 Dao 层的实现类。
9. 明确Spring的事务管理是AOP应用的示例,将事务作为切面织入到了 Service 层的业务方法中,从而将事务特性从数据库层提升到Service层,从而使同事务的特性来管理具体的业务;
在 Spring 中通常可以通过以下三种方式来实现对事务的管理:
1.使用 Spring 的事务代理工厂管理事务
2.使用 Spring 的事务注解管理事务
3.使用 AspectJ 的 AOP 配置管理事务 (最常用)
注意:事务定义接口定义了事务描述相关的三类常量:事务隔离级别、事务传播行为、事务默认超时时限,及对它们的操作;
Spring 事务的默认回滚方式是:发生运行时异常时回滚,发生受查异常时提交。不过,对于受查异常,程序员也可以手工设置其回滚方式。
10. SSH整合开发
Spring4总结的更多相关文章
- SSM整合(三):Spring4与Mybatis3与SpringMVC整合
源码下载 SSMDemo 上一节整合了Mybatis3与Spring4,接下来整合SpringMVC! 说明:整合SpringMVC必须是在web项目中,所以前期,新建的就是web项目! 本节全部采用 ...
- SSM整合(二):Spring4与Mybatis3整合
上一节测试好了Mybatis3,接下来整合Spring4! 一.添加spring上下文配置 在src/main/resources/目录下的spring新建spring上下文配置文件applicati ...
- dubbo升级spring4与cxf
阿里的dubbo项目是基于spring2.x的.但之后停止更新了.当当网有根据dubbo扩展成dubbox,基于spring3.x,但我的项目中用的是spring4.x,于是fork了dubbox,自 ...
- jsonp使用,spring4.x对jsonp的支持
1.Java中接口 @RequestMapping("/token/{token}") @ResponseBody public Object getUserByToken(@Pa ...
- (Spring4 json入门)Spring4+SpringMVC+页面数据发送与接收(json格式)
jar包(Maven仓库): Spring4 jar包(Maven仓库): 在测试过程中我查看了网上的一些教程,但是那些教程都是在Spring3环境下的,Spring3和Spring4解析json需要 ...
- [转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
原文地址:http://blog.csdn.net/ycb1689/article/details/22928519 最新版Struts2+Hibernate+Spring整合 目前为止三大框架最新版 ...
- Spring4.0编程式定时任务配置
看过很多定时调度的配置,大多使用XML配置,觉得比较麻烦,也比较老套.这里介绍一种基于spring4.0注解编程式配置定时任务,简单清晰,使用方便.. 至于引入spring相关jar这里不多说,直接切 ...
- 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台
开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...
- spring4+websocket+nginx详细配置
实现的版本jdk1.7.0_25, tomcat7.0.47.0, Tengine/2.1.1 (nginx/1.6.2), servlet3.0, spring4.2.2 使用maven导入版本3. ...
- Spring4.1新特性——Spring缓存框架增强(转)
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...
随机推荐
- BugPhobia准备篇章:团队Beta阶段准备工作分析
0x00:序言 To the searching tags, you may well fall in love withhttp://xueba.nlsde.buaa.edu.cn/ 再见,无忧时光 ...
- process.tar.gz
exec1.c #include <stdio.h> #include <unistd.h> int main() { char *arglist[3]; arglist[0] ...
- 关于查询报表总是"超时已过期"的问题解决
"超时已过期" 的问题一直在烦扰着我, 在查一些数据量比较大的表或者运行一些复杂存储过程的时候就会出现这个提示, 一开始是按下面的来设,有一些报表是可以正常查出来 a.在企业管理器 ...
- Jquery 临时
<!--微信小程序--> <div id="page1" class="page page1"> <nav> <div ...
- 解决Delphi 2010启动时出现cannot create xxxx\EditorLineEnds.ttr问题
由于在Windows安装了最近的更新(KB2982791, KB2970228)后,Delphi的IDE需要创建的一个文件%TEMP%\EditorLineEnds.ttr会被系统锁定,导致除非重新启 ...
- XShell中文乱码问题解决
现象:XShell终端中输入中文显示乱码 原因:XShell终端的编码格式与服务器不同 解决:修改XShell终端的编码格式:菜单中点击,文件->属性->终端->编码,选择“UTF- ...
- Dog test1 = new Dog()的解释
- import static和import的区别(转)
import static静态导入是JDK1.5中的新特性.一般我们导入一个类都用 import com.....ClassName;而静态导入是这样:import static com.....Cl ...
- 洛谷P3950 部落冲突(LCT)
洛谷题目传送门 最无脑LCT题解,Dalao们的各种算法都比这个好多啦... 唯一的好处就是只管码代码就好了 开战cut,停战link,询问findroot判连通性 太无脑,应该不用打注释了.常数大就 ...
- bzoj3884上帝与集合的正确用法
Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“ ...