当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
Spring柜架基础总结
发布时间:2011/5/6 9:32:49 来源:城市学习网 编辑:ziteng
   简介:这是Spring柜架基础总结的详细页面,介绍了和javascript,JavaScript Spring柜架基础总结有关的知识、技巧、经验,和一些javascript源码等。
    1.定义:
    Spring是一个开源的控制反转(IOC)和面向反切(AOP)的容器框架,主要用于简化企业开发,可以适用于任何java应用程序。使用框架的主要优势在于其分层架构,分层架构允许选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
    2.优点:
    1 降低组件之间的耦合度,实现软件各层之间的解耦。
    2 可以使用容器提供众多的服务(事务管理服务、消息服务)。
    3 容器提供单例模式支持,开发人员不再需要自己编写实现代码。
    4 容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。
    5 容器提供众多辅作类,使用这些类能够加快应用的开发。
    6 Spring对于主流的应用框架提供了集成支持,便于应用开发。
    3.模块组成:
    1 核心容器:提供Spring框架的基本功能,BeanFactory是其主要组件,它是工厂模式的实现。BeanFactory使用控制反转模式将应用程序的配置和依赖性规范与实
    际的应用程序代码分开。
    2 Spring上下文:是一个配置文件,向Spring框架提供上下文信息。
    3 Spring AOP:直接将面向方面的编程功能集成到Spring框架中,为基于Spring的应用程序中的对象提供了事务管理服务。
    4 Spring DAO:提供了异常层次结构,可用该结构来管理异常处理和不同数据库供应商给定的错误信息。简化了错误处理,且大大降低了需要编写的异常代码数量。
    5 Spring ORM:提供ORM的对象关系工具,遵从Spring的通用事务和DAO异常层次结构。
    6 Spring Web:建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文,简化了处理多部分请求以及将请求参数绑定到域对象的工作。  [NextPage]    7 Spring MVC:是一个全功能的构建Web应用程序的MVC实现。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式。每个模块都可以单独存在,也可以与其他模块联合实现。
    不经意找到一个很不错的例子来说明Spring框架的作用:
    首先写下两个Bean类:
    ExampleBean类:
    public class ExampleBean {
    private String psnName=null;
    private RefBean refbean=null;
    private String addinfo=null;
    public RefBean getRefbean() {
    return refbean;
    }
    public String getAddinfo() {
    return getRefbean().getAddress()+getRefbean().getZipcode();
    }
    public String getPsnName() {
    return psnName;
    }
    public void setPsnName(String psnName) {
    this.psnName = psnName;
    }
    public void setRefbean(RefBean refbean) {
    this.refbean = refbean;
    }
    public void setAddinfo(String addinfo) {
    this.addinfo = addinfo;
    }
    }
    RefBean类:
    public class RefBean {
    private String zipcode=null;
    private String address=null;
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    public String getZipcode() {
    return zipcode;
    }
    public void setZipcode(String zipcode) {
    this.zipcode = zipcode;
    }
    }
    其xml配置文件 Bean.xml:
    <?xml version=”1.0″ encoding=”UTF-8″?>
    <!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN”
    “http://www.springframework.org/dtd/spring-beans.dtd”>
    <beans>
    <bean id=”exampleBean” class=”test.ExampleBean”>
    <property name=”psnName”><value>xkf</value></property>
    <property name=”refbean”>
    <ref bean=”refBean”/>
    </property>
    </bean>
    <bean id=”refBean” class=”test.RefBean”>
    <property name=”address”><value>BeiJing</value></property>
    <property name=”zipcode”><value>100085</value></property>
    </bean>
    </beans>
    测试类Test:
    public class Test {
    public static void main(String[] args){
    try{
    Resource input = new ClassPathResource(“test/Bean.xml”);
    System.out.println(“resource is:”+input);
    BeanFactory factory = new XmlBeanFactory(input);
    ExampleBean eb =
    (ExampleBean)factory.getBean(“exampleBean”);
    System.out.println(eb.getPsnName());
    System.out.println(eb.getAddinfo());
    }
    catch(Exception e){
    e.printStackTrace();
    }
    }
    这样,通过BeanFactory的getBean方法,以及xml配置文件,避免了在test类中直接实例化ExampleBean,消除了应用程序(Test)与服务(ExampleBean)之间的耦合,实现了IOC(控制反转)或者说依赖的注射(Dependency Injection)。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved