Spring4总结

1. 明确Spring的主要作用就是为代码“解耦”,降低代码间的耦合度。使用IoC使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了,而是由Spring容器统一管理,自动“注入”;使用AOP使得系统级服务得到了最大的复用,且不用再由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由Spring容器统一完成“织入”。

 

2. 明确IoC(控制反转)是对对象控制权的转移,从程序代码本身反转到了外部容器,由外部容器来实现对象的装配和管理,其不能使用在分布式系统中。即其所依赖的反转到的外部容器,必须要与控制权出让方同处于一个 JVM 中;

 IoC是一种思想,比较流行的实现方式有两种:依赖查找依赖注入,Spring使用的是依赖注入。

3. 明确Bean的装配,创建Bean对象的方式有三种:getBean()方式、动态工厂Bean方式、静态工厂Bean方式

4. 明确Bean的作用域:singletonprototyperequestsession、global session了解Bean的生命周期,分为11步,明确其中的Bean后处理器Bean的定制生命始末

5. 明确基于XML的依赖注入方式和基于注解的依赖注入方式,重点关注域属性注入的byNamebyType。若注解与 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整合开发

 

posted @ 2017-02-09 17:30  拉夫德尔  阅读(4365)  评论(0编辑  收藏  举报