Sping in Action 4th Spring简介

Spring带来的优点:

简单、可测试、松耦合

轻量级、最小侵入性

依赖注入与接口使其松耦合

声明式编程、切面、基于约定

通过aspect和模板去除重复代码

 

严重耦合的例子

Sping in Action 4th Spring简介

使用new关键字在一个类中创建另外一个类的实例。

耦合是必要的,因为耦合才能实现业务逻辑,但是过度耦合会导致侵入性强,测试难度大。

 

DI的工作原理

Sping in Action 4th Spring简介

依赖注入容器自动注入POJO所需的依赖,无需POJO显式主动获取。

 

Sping in Action 4th Spring简介

BraveKnight不关心quest的具体实现是什么,也不关心它是怎么embark的,只要注入进来的类实现了Quest接口。

 

依赖绑定1(xml)

Sping in Action 4th Spring简介

以上都是通过构造器注入的,所以<constructor-arg ref/value />

 

依赖绑定2(Java)

使用xml绑定类的方法比较繁琐,目前比较流行的是java或者注解的形式,当然,由于历史原因,一些配置还必须使用xml。

Sping in Action 4th Spring简介

 

ClassPathXmlApplicationContext读取xml绑定

在xml配置的依赖绑定,一般通过ClassPathXmlApplicationContext进行读取配置,其实就是生成了一个Container

Sping in Action 4th Spring简介

 

Aop简介

日志,安全,事务等问题都是大家关注的问题,在整个逻辑的各个层面都会有所体现。

Sping in Action 4th Spring简介

Sping in Action 4th Spring简介

切面贯穿于业务逻辑的始终,随处可见的日志,随处可见的安全与事务。类似于活动插槽,想在哪里插入都可以。

 

Xml声明AOP组件

Sping in Action 4th Spring简介

 

使用样板消除重复代码

使用Template消除重复代码,如JDBCTemplate消除JDBC连接释放等重复代码。

 

五种常用的Spring容器

Sping in Action 4th Spring简介

FileSystemXmlApplicationContext

Sping in Action 4th Spring简介

ClassPathXmlApplicationContext

Sping in Action 4th Spring简介

AnnotationConfigApplicationContext

Sping in Action 4th Spring简介

 

Spring家族

Sping in Action 4th Spring简介