Spring概况

Spring的简介

    Spring是一个轻量级的控制反转和面向切面的容器框架,它主要是为了解决企业应用开发的复杂性而诞生的:

    目的:解决企业应用开发的复杂性

    功能:使用基本的javaBean代替EJB

    范围:任何java应用

Spring的起源

    Spring的存在是因为它自身拥有得天独厚的优势:

    1、它定位的领域是许多其他流行的framework没有的

    2、Spring是全面的和模块化的

    3、它的设计从底部帮助你编写易于测试的代码

    4、Spring是潜在的和一站式解决方案

Spring的优点   

    Spring的优点:

   1、低侵入式设计,代码污染极低

    2、Write Once, Run anywhere

    3、DI有效的降低了耦合度

    4、AOP提供了通用任务的集中管理

    5、ORM和DAO简化了数据库访问

    6、高度开放性,并不强制

Spring的优点带来的好处:

   1、可以有效组织中间层对象

    2、使用统一的配置文件

    3、促进良好的编程习惯,减少编程代价

    4、易于单元测试

    5、使EJB成为一种备选

    6、为数据存取提供了一致的框架  

Spring的特点

   1、方便解耦,简化开发

    2、AOP编程的支持

    3、声明式事务的支持

    4、方便程序的测试

    5、方便集成各种优秀框架

    6、降低JavaEE API的使用难度

    7、Spring的源码是经典学习范例

Spring的基本框架

   1、核心容器    Spring Core

    2、应用上下文    Spring Context

    3、AOP模块    Spring AOP

    4、JDBC和DAO模块

    5、对象实体映射    Spring ORM

    6、Web模块    Spring Web

    7、MVC模块    Spring Web MVC

Spring的总结  

    1、Spring带来了复杂的J2EE编程的春天

       2、它的核心是轻量级的IoC容器,它的目标是为J2ee提供全方位的整合框架,在Spring框架下实现了多个子框架的组合,这些子框架之间彼此独立,也可以使用其他的框架方案来替代它们

       3、Spring希望为企业应用提供一站式解决方案

    

Spring之IOC

浅谈IoC

    IOC是Spring的核心,贯穿始终。所谓IOC,对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系:

    1、传统开发模式:对象之间相互依赖

    2、IoC开发模式:IOC容器安排对象之间的依赖

DI依赖注入

    IOC的另外一个名字叫做依赖注入,所谓依赖注入,就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中,所以,依赖注入和控制反转是从不同的角度描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦

IOC的好处

    IOC在编程过程中不会对业务对象构成很强的侵入性,使用IOC之后,对象具有更好的可实行性,可重用性和可扩展性:

    1、降低组件之间的耦合度

    2、提高开发效率和产品质量

    3、统一标准,,提高模块的复用性

    4、模块具有热插拔特性

IOC的通俗理解

    IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,侧重于原理

    DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其他对象实例,侧重于实现

Spring之AOP

什么是AOP

    AOP的基本概念

    AOP与OOP的关系

    AOP的主要功能

    AOP的主要意图

AOP的存在价值

    AOP专门用于处理系统中分布于各个模块中的交叉关注点问题,在J2EE应用中,常常通过AOP来处理一些具有横切性质的系统级服务,如事务处理、安全检查、缓存、对象池管理等,AOP已经成为一种非常常用的解决方案。

AOP的原理剖析

    AOP代理其实是由AOP框架动态生成的一个对象,该对象可作为目标对象使用。AOP代理所包含的方法和目标对象的方法如下:

    代理对象的方法=增强处理+被代理对象的方法


AOP的关键概念

   切面    Aspect

    连接点        join Point

    通知            advice

    切入点        point cut

    引入            introduction

    目标对象     target object

    AOP代理    AOP Proxy

    织入            Weaving

AOP的通俗理解

    一个组件A,不关心其他常用的组件服务B,但是这个组件A使用组件B的时候,不是组件A自身去调用,而是通过配置等其他方式,比如Spring中可以通过xml配置文件。这样就使得A压根就不需要知道服务组件B是怎样的,A只关心自己的业务逻辑,具体A使用B的时候,配置文件去做,与具体的A组建没有关系。