首页 > 代码库 > java的Spring 框架概述

java的Spring 框架概述

◆简介 

意图:解决公司运用开发的复杂性

功用:运用根本的JavaBean替代EJB,并供给了更多的公司运用功用

规模:任何Java运用

 

Spring 结构是一个分层架构,由 7 个界说良好的模块构成号码归属地查询。Spring 模块构建在中心容器之上,中心容器界说了创建、装备和办理 bean 的办法。 

 

 

  

构成 Spring 结构的每个模块(或组件)都能够独自存在关键词挖掘工具,或许与其他一个或多个模块联合完结。每个模块的功用如下: 

中心容器:中心容器供给 Spring 结构的根本功用。中心容器的首要组件是 BeanFactory,它是工厂形式的完结。BeanFactory 运用操控回转 (IOC) 形式将运用程序的装备和依靠性标准与实际的运用程序代码分开。 

Spring 上下文:Spring 上下文是一个装备文件,向 Spring 结构供给上下文信息。Spring 上下文包含公司效劳,例如 JNDI、EJB、电子邮件、国际化、校验和调度功用。 

Spring AOP:经过装备办理特性,Spring AOP 模块直接将面向方面的编程功用集成到了 Spring 结构中。所以,能够很容易地使 Spring 结构办理的任何目标支撑 AOP。Spring AOP 模块为根据 Spring 的运用程序中的目标供给了业务办理效劳。经过运用 Spring AOP,不用依靠 EJB 组件,就能够将声明性业务办理集成到运用程序中。 

Spring DAO:JDBC DAO 笼统层供给了有意义的反常层次结构,可用该结构来办理反常处置和不一样数据库供货商抛出的错误音讯。反常层次结构简化了错误处置,而且极大地下降了需求编写的反常代码数量(例如翻开和关闭衔接)。Spring DAO 的面向 JDBC 的反常遵照通用的 DAO 反常层次结构。 

Spring ORM:Spring 结构插入了若干个 ORM 结构,然后供给了 ORM 的目标联系东西,其间包含 JDO、Hibernate 和 iBatis SQL Map。一切这些都遵照 Spring 的通用业务和 DAO 反常层次结构。 

Spring Web 模块:Web 上下文模块树立在运用程序上下文模块之上,为根据 Web 的运用程序供给了上下文。所以,Spring 结构支撑与 Jakarta Struts 的集成。Web 模块还简化了处置多有些恳求以及将恳求参数绑定到域目标的作业。 

Spring MVC 结构:MVC 结构是一个全功用的构建 Web 运用程序的 MVC 完结。经过战略接口,MVC 结构变变成高度可装备的,MVC 包容了许多视图技能,其间包含 JSP、Velocity、Tiles、iText 和 POI。 

Spring 结构的功用能够用在任何 J2EE 效劳器中,大多数功用也适用于不受办理的环境。Spring 的中心要点是:支撑不绑定到特定 J2EE 效劳的可重用业务和数据访问目标。毫无疑问,这样的目标能够在不一样 J2EE 环境 (Web 或 EJB)、独立运用程序、测验环境之间重用。 

 

◆Spring作为全方位的运用程序结构(Framework) 

 

 

 

◆术语描绘 

① 轻量级(Lightweight)。Spring 中心包容量不到1MB的巨细,能够在许多小型设备中运用Spring。 

② 非侵入性(No intrusive)。增强运用程序组件的可重用性,削减对结构的依靠。 

③ 容器(Container)。根据装备文件自动生成目标及特点等,不用编写任何代码来产生目标。 

④ Inversion of Control(IOC)与Dependency Injection(DI)。IOC意图就是依靠于笼统;目标之间的联系由容器根据装备文件将依靠写入指定的目标中。 

⑤ AOP(Aspect-oriented programming)。根据署理及拦截器的机制,与Spring IOC 联系,选用运行时Weaving办法在Spring结构的运用程序中运用各种声明式体系级效劳。 

⑥ 耐久层(Persistent)。Spring供给DAO、编程业务与声明式业务,关于ORM东西(Hibernate、iBATIS)的联系及运用上简化。 

⑦ JavaEE效劳。能够运用JavaEE标准标准供给的各项效劳,并无缝联系。 

 

◆Spring结构的优势 

使J2EE易用和推进好编程习气。 

Spring不重新开发已有的东西。因而,在Spring中你将发现没有日志记载的包,没有衔接池,没有散布业务调度。这些均有开源项目供给(例如Commons Logging 用来做一切的日志输出,或Commons DBCP用来作数据衔接池),或由你的运用程序效劳器供给。由于相同的的原因,咱们没有供给O/R mapping层,对此,已有好的解决办法如Hibernate和JPA。 

使已存在的技能愈加易用。 

例如,虽然咱们没有底层业务协调处置,但咱们供给了一个笼统层覆盖了JTA或任何其他的业务战略。 

没有直接和其他的开源项目竞赛。 

例如,许多开发人员,咱们从来没有为Struts快乐过,而且感到在MVC结构中还有改善的地步。在某些范畴,例如轻量级的IoC容器和AOP结构,Spring有直接的竞赛,但是在这些范畴还没有现已较为盛行的解决方案。(Spring在这些区域是开路先锋。) 

Spring在运用效劳器之间是可移植的。确保可移植性老是一项挑战,但是Spring防止任何特定渠道或非标准化,而且支撑在WebLogic,Tomcat,Resin,JBoss,WebSphere和其他的运用效劳器上的用户。 

便利解耦,简化开发。 

经过Spring供给的IoC容器,咱们能够将目标之间的依靠联系交由Spring进行操控,防止硬编码所造成的过度程序耦合。有了Spring,用户不用再为单实例形式类、特点文件解析等这些很底层的需求编写代码,能够更专心于上层的运用。 

AOP编程的支撑。 

经过Spring供给的AOP功用,便利进行面向切面的编程,许多不容易用传统OOP完结的功用能够经过AOP轻松敷衍。 

声明式业务的支撑 

  在Spring中,咱们能够从单调愁闷的业务办理代码中解脱出来,经过声明式办法灵敏地进行业务的办理,提高开发效率和质量。 

便利程序的测验 

  能够用非容器依靠的编程办法进行简直一切的测验作业,在Spring里,测验不再是贵重的操作,而是顺手可做的工作。 

便利集成各种优异结构 

  Spring不排斥各种优异的开源结构,相反,Spring能够下降各种结构的运用难度,Spring供给了对各种优异结构(如Struts,Hibernate)等的直接支撑。 

下降Java EE API的运用难度 

Spring对许多难用的Java EE API(如JDBC,JavaMail,长途调用等)供给了一个薄薄的封装层,经过Spring的简易封装,这些Java EE API的运用难度大为下降。 

 

◆下载、设置Spring 

http://springframework.org/ 

 

 

 

◆预备Spring设计环境 

 

 

 

◆编写第一个Spring程序 

HelloWorld接口: 

Java代码  保藏代码

/** 

 *  

 * @Copyright(C),2009-2010 SISE Java Team. 

 * @Author:easinchu 

 * @Email:easinchu@gmail.com  

 * @Description: 

 */  

public interface HelloWorld {  

  

    public void sayHello();  

}  

 

HelloWorldBean完结类: 

Java代码  保藏代码

/** 

 *  

 * @Copyright(C),2009-2010 SISE Java Team. 

 * @Author:easinchu 

 * @Email:easinchu@gmail.com  

 * @Description: 

 */  

public class HelloWorldBean implements HelloWorld{  

  

    private String helloWorld;  

      

    public void setHelloWorld(String helloWorld) {  

        this.helloWorld = helloWorld;  

    }  

      

    public void sayHello() {  

        System.out.println(helloWorld);  

    }  

}  

 

Spring XML装备文件ioc-config.xml: 

Xml代码  保藏代码

 

    

       Hello,Welcome To Spring World! 

    

 

 

测验类: 

Java代码  保藏代码

import org.springframework.beans.factory.BeanFactory;  

import org.springframework.beans.factory.xml.XmlBeanFactory;  

import org.springframework.core.io.ClassPathResource;  

import org.springframework.core.io.Resource;  

  

/** 

 *  

 *@Copyright(C),2009-2010 SISE Java Team. 

 *@Author:easinchu 

 *@Email:easinchu@gmail.com  

 *@Description:选用Spring的BeanFactory结构IoC容器. 

 */  

public class FirstSpringDemo {  

      

    public static void main(String []args) {  

        //-----------BeanFactory IoC容器---------------------//  

        //从classpath途径上装载XML的装备信息  

        Resource resource = new ClassPathResource("ioc-config.xml");  

          

        //实例化IOC容器,此时容器并未实例化beans-config.xml所界说的各个受管bean.  

        BeanFactory factory = new XmlBeanFactory(resource);  

          

        /  

          

        //获取受管bean  

        HelloWorld hello = (HelloWorld)factory.getBean("helloWorldBean");  

        hello.sayHello();  

    }  

}  

 

过程小结 

①利用XmlBeanFactory读取xml装备文件并树立BeanFactory实例 

②BeanFactory根据装备文件完结依靠写入 

③经过getBean()办法指定Bean称号获得Bean实例 

java的Spring 框架概述