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. LINUX内核分析第六周学习总结——进程的描述和进程的创建

    LINUX内核分析第六周学习总结——进程的描述和进程的创建 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/cours ...

  2. C#代码分析--阅读程序,回答问题

    阅读下面程序,请回答如下问题: 问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间 ...

  3. DHCP分配固定IP

    https://www.cnblogs.com/liu1026/p/9829337.html 按照上面的操作实验好后在DHCP服务端的配置文件中加入

  4. PAT 甲级 1115 Counting Nodes in a BST

    https://pintia.cn/problem-sets/994805342720868352/problems/994805355987451904 A Binary Search Tree ( ...

  5. ejabberd与XMPP

    ejabberd支持XMPP协议. worktile用ejabberd来做了实时消息推送: https://worktile.com/tech/basic/worktile-real-time-not ...

  6. composer 使用(踩坑笔记)

    composer的介绍 来张图就好啦!我不细说啦 安装composer 1).PHP 环境变量配置,可参考百度经验: 2).详情可参考中国全量镜像进行 Composer 的安装 3).安装完成后,命令 ...

  7. CentOS7 安装redis 并且设置成服务自动启动

    通过 博客园 https://www.cnblogs.com/zuidongfeng/p/8032505.html 学习以及记录 1. 下载redis 现在最新的stable版本是 4.0.10 wg ...

  8. lightgbm原理以及Python代码

    原论文: http://papers.nips.cc/paper/6907-lightgbm-a-highly-efficient-gradient-boosting-decision-tree.pd ...

  9. BZOJ2597 WC2007剪刀石头布(费用流)

    考虑使非剪刀石头布情况尽量少.设第i个人赢了xi场,那么以i作为赢家的非剪刀石头布情况就为xi(xi-1)/2种.那么使Σxi(xi-1)/2尽量小即可. 考虑网络流.将比赛建成一排点,人建成一排点, ...

  10. POJ 1182 食物链 (带权并查集)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 78551   Accepted: 23406 Description ...