Spring是一个轻量级控制反转(Ioc)面向切面(AOP)的容器框架。

一、SPring体系结构

Spring Integration 内置消息 spring内容_业务逻辑

Spring由20多个模块组成,它们可以分为数据访问/集成(Data Access/Integration)、Web、面向切面编程(AOP)、消息发送(Messaging)、核心容器(Core Container)和测试(Test)。就是一个给你写好很多类打成Jar包的一个大集合。

二.Spring4框架解压目录及Jar包说明

Spring Integration 内置消息 spring内容_面向切面编程_02

Spring Integration 内置消息 spring内容_面向切面编程_03

三.Spring的特点

1、非侵入式

  所谓非侵入式是指Spring框架的API不会在业务逻辑上出现,即业务逻辑是POJO。由于业务逻辑中没有Spring的API,苏鸥翼业务逻辑可以从Spring框架快速移植到其他框架,即与环境无关。

2、容器

  Spring作为一个容器,可以管理对象的生命周期、对象与对象之间的依赖关系。可以通过配置文件,来定义对象,以及设置与其他对象的依赖关系。

3、IOC

  控制反转(Inversion of Control),即创建被调用者的实例不是由调用者完成,而是由Spring容器完成,并注入调用者。

  当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。即,不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

4、AOP

  面向切面编程(AOP)是一种编程思想,是面向对象编程OOP的补充。很多框架都实现了对AOP编程思想的实现。Spring也提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统服务(例如日志和事务管理)进行开发。应用对象只实现它们应该做的--完成业务逻辑--仅此而已。它们并不负责其它的系统级关注点,例如日志或事务支持。

  我们可以把日志、安全、事务管理等服务理解成一个"切面",那么以前这些服务一直是直接写在业务逻辑的代码当中的,这有两点不好:首先业务逻辑不纯净;其次这些服务被很多业务逻辑反复使用,完全可以剥离出来做到复用。那么AOP就是这些问题的解决方案,可以把这些服务玻璃出来形成一个"切面",以期复用,然后将"切面"动态"织入"到业务逻辑中,让业务逻辑能够享受到此"切面的服务"。