zoukankan      html  css  js  c++  java
  • Spring

    Spring简介和Spring3.0的变化

      Spring框架由Rod Johnson开发,2003年发不了Spring框架的第一个版本。经过长达7年多的发展,Spring已经发展成Java EE开发中最重要的框架之一。不仅如此,一Spring为核心还衍生出了系列框架,如Spring Web Flow、Spring Security、Spring Android......等。

      Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高企业应用的开发效率。Spring提供了一种Template的设计哲学,这些Template完成了大量的通用步骤,如果开发者用这些Template,则无须自己实现那些通用的步骤。

      Spring为企业应用的开发提供了一个轻量级的解决方案。该解决方案包括:基于依赖注入的核心机制。基于Aop的声明式事务管理,与多种持久层的整合,以及优秀的Web MVC框架等。Spring致力于JavaEE 应用各层的解决方案,而不是仅仅专注于某一层的方案。可以说:Spring是企业应用开发“一站式”选择,Spring贯穿表现层、业务层、持久层。然而,Spring并不想取代那些已有的框架,而是以高度的开放性与他们无缝结合。

      Sspring的优点:

      1.低侵入式设计,代码污染率极低。

      2.独立于各种应用服务器,基于Spring框架的应用,可以真正的实现Write One、Run Anywhere的承诺。

      3.Spring的DI容器降低了业务对象替换的复杂性,提高了组件之间的解耦。

      4.Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式处理,从而提供更好的复用。

      5.Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。

      6.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。

      Spring的核心机制:依赖注入

      加入A组件调用了B组件的方法,我们可称A组件依赖于B组件。

      使用依赖注入,不仅可以为Bean注入普通的属性值,还可以注入其他Bean的引用。通过这种依赖注入,Java EE应用中的各种组件不需要以硬编码方式耦合在一起,甚至无需使用工厂模式。依赖注入达到的效果,非常类似于传说中的“共产主义”,当某个Java实例需要其他Java实例时,系统自动提供所需要的实例,无须程序显式获取

      一、理解依赖注入

       虽然Spring并不是依赖注入的 首创者,但Johnson是第一个高度重视以配置文件来管理Java实例的协作关系的人,他给这方式起了一个名字:控制反转(Inversion of  control)。但这个称呼及其晦涩,在后来的日子里,Martine Fowler 为这种方式起了另一个相对简单的称呼:依赖注入(Dependence Injection)。

       Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。

        设值注入:IoC容器使用属性的setter方法来注入被依赖的实例。

        构造注入:IoC容器使用构造器来注入被依赖的实例。

      part one 设值注入:

    codes77.3settersrcorgcrazyitappservicePerson.java

    public interface Person{
        //定义一个使用斧子的方法
        public void useAxe();        
    }
    

    codes77.3settersrcorgcrazyitappserviceAxe.java

    public interface Axe{
       //Axe方法里有个砍的方法
       public String chop(); 
    }
    View Code

    codes77.3settersrcorgcrazyitappserviceChinese.java

    public class Chinese implements Person{
      private Axe axe;  
      public void setAxe(Axe axe){
        this.axe=axe;
       }  
    
      pubilic void useAxe(){
        System.out.println(axe.chop());
       } 
    }

    codes77.3settersrcorgcrazyitappserviceStoneAxe.java

    public class StoneAxe implements Axe{
    	public String chop(){
    		reture"石斧砍柴好慢";
    	}
    }
    

      Spring使用XML作为配置文件,从Spring2.0开始,Spring既可以采用DTD来定义配置文件的语义约束,也可以采用XML Schema配置文件的语义约束。当采用XML Schema来定义配置文件的语义约束是,还可以利用Spring配置文件的扩展性,进一步简化Spring的配置。  

      

  • 相关阅读:
    Mark
    个人作业——软件工程实践总结作业
    个人作业——软件产品案例分析
    个人技术博客(α)
    软件工程实践_结对Task2_ student_department_matching
    软件工程实践_Task2_sudoku
    软件工程实践_Task1
    面向对象程序设计_Task7_Summary
    面向对象程序设计__Task6_Calculator1.6.2
    C++课堂作业_02_PAT1025.反转链表
  • 原文地址:https://www.cnblogs.com/miffy/p/4976635.html
Copyright © 2011-2022 走看看