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总结的更多相关文章

  1. SSM整合(三):Spring4与Mybatis3与SpringMVC整合

    源码下载 SSMDemo 上一节整合了Mybatis3与Spring4,接下来整合SpringMVC! 说明:整合SpringMVC必须是在web项目中,所以前期,新建的就是web项目! 本节全部采用 ...

  2. SSM整合(二):Spring4与Mybatis3整合

    上一节测试好了Mybatis3,接下来整合Spring4! 一.添加spring上下文配置 在src/main/resources/目录下的spring新建spring上下文配置文件applicati ...

  3. dubbo升级spring4与cxf

    阿里的dubbo项目是基于spring2.x的.但之后停止更新了.当当网有根据dubbo扩展成dubbox,基于spring3.x,但我的项目中用的是spring4.x,于是fork了dubbox,自 ...

  4. jsonp使用,spring4.x对jsonp的支持

    1.Java中接口 @RequestMapping("/token/{token}") @ResponseBody public Object getUserByToken(@Pa ...

  5. (Spring4 json入门)Spring4+SpringMVC+页面数据发送与接收(json格式)

    jar包(Maven仓库): Spring4 jar包(Maven仓库): 在测试过程中我查看了网上的一些教程,但是那些教程都是在Spring3环境下的,Spring3和Spring4解析json需要 ...

  6. [转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合

    原文地址:http://blog.csdn.net/ycb1689/article/details/22928519 最新版Struts2+Hibernate+Spring整合 目前为止三大框架最新版 ...

  7. Spring4.0编程式定时任务配置

    看过很多定时调度的配置,大多使用XML配置,觉得比较麻烦,也比较老套.这里介绍一种基于spring4.0注解编程式配置定时任务,简单清晰,使用方便.. 至于引入spring相关jar这里不多说,直接切 ...

  8. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  9. 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. ...

  10. Spring4.1新特性——Spring缓存框架增强(转)

    目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...

随机推荐

  1. Backbone实践案例

    By:软件11 王思伦 2013-10-4 Backbone简述: Backbone基于MVC架构,用于开发重量级Javascript应用的框架. 如上文所述,Backbone包含多种类,但主要包含了 ...

  2. 【MOOC EXP】Linux内核分析实验二报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  [操作系统是如何工作的]   教学内 ...

  3. 《大象Think in UML》阅读笔记(三)

    Think in UML 阅读笔记(三) 把从现实世界中记录下来的原始需求信息,再换成一种可以知道开发的表达方式.UML通过被称为之概念化的过程来建立适合计算机理解和实现的模型,这个模型被称为分析模型 ...

  4. java之JDBC学习总结

    以前一直以为jdbc是很高大上的东西,没想到今天学了jdbc,惊喜来了,just a tool!当然工具是用来帮助人们学习和提供方便的,所以总结了一下,也就是简单的三板斧: first :加载驱动 t ...

  5. Python进阶-字符串格式化

    目录 前言 %格式化 str.format() f-Strings 特殊符号处理 前言 在 Python 3.6 之前,字符串格式化方法主要有两种: %格式化 str.format() 在Python ...

  6. 实体框架自定义代码优先约定(EF6以后)

    仅限EF6仅向前 - 此页面中讨论的功能,API等在实体框架6中引入.如果您使用的是早期版本,则部分或全部信息不适用. 使用Code First时,您的模型是使用一组约定从您的类计算的.默认的Code ...

  7. redis后台启动配置

    在cmd窗口启动redis,窗口关闭后再次操作会报错. 将redis安装为服务,可使其在后台启动,无须担心误操作关闭服务窗口. 配置如下: 进入redis目录,输入如下命令执行即可: redis-se ...

  8. 【题解】 Luogu P1541 乌龟棋总结 (动态规划)

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...

  9. bzoj1485: [HNOI2009]有趣的数列(Catalan数)

    一眼卡特兰数...写完才发现不对劲,样例怎么输出$0$...原来模数不一定是质数= =... 第一次见到模数不是质数的求组合数方法$(n,m\leq 10^7)$,记录一下... 先对于$1$~$n$ ...

  10. Libre 6009 「网络流 24 题」软件补丁 / Luogu 2761 软件安装问题 (最短路径,位运算)

    Libre 6009 「网络流 24 题」软件补丁 / Luogu 2761 软件安装问题 (最短路径,位运算) Description T 公司发现其研制的一个软件中有 n 个错误,随即为该软件发放 ...