zoukankan      html  css  js  c++  java
  • applicationContext.xml详解

     

    对里面的一些概念还不熟悉,一个字"",在网上搜搜资料,解释一下applicationcontext.xml

    我们以项目中的订单Order为例简要说明一下SpringHibernate的集成。关于如何使用Hibernate来对数据库表做映射,我们在前面已经做了介绍,这里我们关心的是如何配置Spring,使它能管理Hibernate。其实,只要在Spring的配置文件(我们这里是applicationContext.xml)中配置一个叫做sessionFactorybeanSpring就可以和Hibernate联系起来了。

    <bean id="se欢迎光临学网,收藏本篇文章 [1] [2] [3] [4] [5]

    $False$

    ssionFactory" class="org.springframework.orm.hibernate.Local SessionFactoryBean">

        <property name="configLocation">

        <value>com/ascent/bean/hibernate.cfg.xml</value>

        </property>

    </bean>

    这样,SpringHibernate的第一步整合就完成了,现在到了关键的地方——如何让SpringHibernate双剑合璧来实现业务逻辑?

    还是在applicationContext.xml文件中先做一个配置。

    <bean id="transactionManager" class="org.springframework.orm.hibernate. HibernateTransactionManager">

        <property name="sessionFactory">

          <ref local="sessionFactory"/>

        </property>

      </bean>

    在上面你大概可以感觉到Spring给我们带来的好处了,SpringIoC模式可以统一管理各层,而又使各层松散耦合在一起,使各层之间实现最大的解耦性,这也是Web架构一向的追求。

    但是,Spring带来的好处还不止于此,除了IoC还有AOPSpring可文章整理:学网 http://www.xue5.com (本站) [1] [2] [3] [4] [5]

    以运用AOP来实现很多功能,最常用的就是事务处理。这里我们用了业务服务(business service)层和数据存取对象(Data Access Object)层,在业务服务层我们增加事务处理,数据存取对象层负责数据读写。

    首先,组装配置好Service Beans

    <bean id="orderService" class="org.springframework.transaction.interceptor. TransactionProxyFactoryBean">

        <property name="transactionManager">

          <ref local="transactionManager"/>

        </property>

        <property name="target">

          <ref local="orderTarget"/>

        </property>

        <property name="transactionAttributes">

          <props>

            <prop key="find*">PROPAGATION_REQUIRED,readOnly,-OrderException</prop>

            <prop key="save*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimum AmountException</prop>

          </props>

        </property>

      </bean>

    之后,需要把业务服务对象和数据存取对象也组装起来,并把这些对象配到一个事务管理器(transaction manager)里。

    Spring中的配置信息。

    <bean id="orderTarget" class="com.ascent.business.service.OrderServiceImpl">

      &nb欢迎光临学网,收藏本篇文章 [1] [2] [3] [4] [5]

    sp; <property name="orderDAO">

          <ref local="orderDAO"/>

        </property>

      </bean>

    <bean id="orderDAO" class="com.ascent.dao.hibernate.OrderHibernateDAO">

        <property name="sessionFactory">

          <ref local="sessionFactory"/>

        </property>

      </bean>

    6-10是项目对象搭建的一个提纲。从中可以看出,每个对象都联系着Spring,并且能通过Spring注入到其他对象。把它与Spring的配置文件比较,观察他们之间的关系。

    Spring就是这样基于配置文件,将各个Bean搭建在一起的。

    这里我们使用一个TransactionProxyFactoryBean,它定义了一个setTransactionManager(),这个对象很有用,它能很方便地处理你申明的Service Object中的事物,你可以通过transaction Attributes属性来定义怎样处理。

    TransactionProxyFactoryBean还有个setter,这会被业务服务对象(orderTarget)引用,orderTarget定义了业务服务层,并且它还有个属性,由setOrderDAO()引用这个属性。

    还有一点要注意,bean可以用两种方式创造,这些都在单例模式(Sington)和原型模式(propotype)中定义了。默认的方式是singleton,这意味着共享的实例将被束缚,文章整理:学网 http://www.xue5.com (本站) [1] [2] [3] [4] [5]

    而原型模式是在Spring用到bean的时候允许新建实例的。当每个用户需要得到他们自己BeanCopy时,你应该仅使用prototype模式。

    这样,SpringHibernate就完成了对业务对象的管理

    资料来源:学网(www.xue5.com),原文地址:http://www.xue5.com/itedu/200707/133978.html

  • 相关阅读:
    记第一场省选
    POJ 2083 Fractal 分形
    CodeForces 605A Sorting Railway Cars 思维
    FZU 1896 神奇的魔法数 dp
    FZU 1893 内存管理 模拟
    FZU 1894 志愿者选拔 单调队列
    FZU 1920 Left Mouse Button 简单搜索
    FZU 2086 餐厅点餐
    poj 2299 Ultra-QuickSort 逆序对模版题
    COMP9313 week4a MapReduce
  • 原文地址:https://www.cnblogs.com/heavyhe/p/4547349.html
Copyright © 2011-2022 走看看