无风无影

   ::  :: 新随笔  ::  ::  :: 管理

Spring结构简介

Sring架构简介

  一、Spring框架简介

    Spring框架是分层次的,主要由7部分组成:

     Spring核心容器 其核心组件是Beanfactory,它是工厂模式的实现。其使用IOC将代码和配置文件分离。

     Spring上下文  其是一个配置文件,向Spring框架提供上下文信息。如JNDI、邮件信息等

     Spring AOP 通过配置管理特性,Spring将面向切向编程加入到了Spring中。

     Spring DAO 主要用该结构处理不同数据库厂商抛出的异常信息和管理异常。

     Spring ORM Spring插入了若干ORM框架,从而提供了ORM对象关系管理工具。其中包括hibernate和mybatis等。

     Spring Web模块 web模块建立在应用程序模块之上,从而为基于web的模块提供上下文。

     Spring MVC框架  一个基于MVC框架的web实现

    

  二、控制反转IOC

    IOC的基础是org.springframework.beans和org.springframework.context

    IOC的主要目的降低对象之间的依赖关系。通过协调依赖关系,实现可重用和可移植性。控制权有应用代码转移了外部容器,实现了解耦。

    IOC的实现策略有两种:

    依赖查找 容器中的受控对象通过容器API来查找所依赖的对象。缺点:无法在容器外测试和使用对象。

    依赖注入 让容器去全权负责依赖,其主要是通过属性或者构造函数传递给需要的对象。

    依赖注入的简代码单实现,如下:

public inteerface ICar
{
    public void make();
}

public class SmallCar implements ICar
{
        public void make(){};

}

public class BigCar implements ICar
{
        public void make(){};

}

public Class Person
{
    public void make(ICar car)
    {
          car.make();
    }
}

public static void main(String[] args)
{
        ICar smallCar=new SmallCar();
         ICar bigCar=new SmallCar();
         Persona p=new Personal();
         p.make(smallCar);
          p.make(bigCar);
}
查看代码

     而在Java中IOC的工厂是由XML配置文件实现的(xml省略),代码如下:

     创建SamllCar对象,如下:

     ICar smallCar=(ICar)Clss.forname("SmallCar").newInstance();

      调用SamllCar的make方法,如下:

    Method testMethod=smallCar.getMethod("make",nulll);

 IOC容器的实现方式:xml配置和反射。

 BeanFactory支持两个对象模型:

   单态模式:提供了特定名称的对象实例的共享。

   原型模式:确保每次检索都会创建单独的对象。

  IOC的缺点:

  1、生成一个对象的步骤变复杂了。

  2、使用反射编程,效率降低。

  3、xml配置文件的重构支持减弱,因为IDE不支持xml修改类名。

  三、依赖注入DI

    IOC的依赖模式有三种:

    1、接口注入 服务需要实现专门的接口,通过接口可以查询依赖性。具有侵略性,接口之间关联性太强。

    2、构造注入 使依赖以构造函数的形式提供

    3、设置注入 通过JavaBean提供对象的依赖性。

  四、Spring的IOC容器装载机制

    装载机制主要有四种:BeanFactory和ApplicationContext,还有不常用的BeanWarpper和WebContext机制

    

 

posted on 2016-04-05 21:19  NWNS-无风无影  阅读(197)  评论(0)    收藏  举报