applicationContext.xml详解

想必用过

以下是详解Spring的applicationContext.xml文件代码:<!– 头文件,主要注意一下编码 –>

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"""><beans>

<!– 建立数据源 –>

<bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource">

<!– 数据库驱动,我这里使用的是Mysql数据库 –>

<propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value> </property>

<!– 数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦! –>

<property name="url"><value>jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8 </value> </property>

<!– 数据库的用户名 –>

<property name="username"><value>root</value> </property>

<!– 数据库的密码 –>

<property name="password"><value>123</value> </property></bean>

<!– 把数据源注入给Session工厂 –>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"><ref bean="dataSource" /> </property>

<!– 配置映射文件 –>

<property name="mappingResources"><list><value>com/alonely/vo/User.hbm.xml</value></list> </property></bean>

<!– 把Session工厂注入给hibernateTemplate –><!– 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。 –>

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <constructor-arg><ref local="sessionFactory" /> </constructor-arg></bean>

<!– 把DAO注入给Session工厂 –>

<bean id="userDAO" class="com.alonely.dao.UserDAO"> <property name="sessionFactory"><ref bean="sessionFactory" /> </property></bean>

<!– 把Service注入给DAO –>

<bean id="userService"class="com.alonely.service.UserService"> <property name="userDAO"><ref local="userDAO" /> </property></bean>

<!– 把Action注入给Service –>

<bean name="/user"class="com.alonely.struts.action.UserAction"> <property name="userService"><ref bean="userService" /> </property></bean></beans>

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

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

<beanid="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"><property name="configLocation"><value>com/ascent/bean/hibernate.cfg.xml</value></property></bean>

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

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

<beanid="transactionManager"class="org.springframework.orm.hibernate.HibernateTransactionManager"><property name="sessionFactory"><ref local="sessionFactory"/></property> </bean>

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

但是,Spring带来的好处还不止于此,除了IoC还有AOP,Spring可以运用AOP来实现很多功能,最常用的就是事务处理。这里我们用了业务服务(business service)层和数据存取对象(Data Access Object)层,在业务服务层我们增加事务处理,数据存取对象层负责数据读写。

首先,组装配置好Service Beans。

<beanid="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><propkey="find*">PROPAGATION_REQUIRED,readOnly,-OrderException</prop><propkey="save*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException</prop></props></property> </bean>

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

前有阻碍,奋力把它冲开,运用炙热的激情,

applicationContext.xml详解

相关文章:

你感兴趣的文章:

标签云: