[转]引用 MyEclipse中applicationContext.xml配置及常见问题

引用 MyEclipse中applicationContext.xml配置及常见问题
2011-05-21 12:21

SHH(Struts1.2 + Spring2.0 + hibernate3.1)结合的javaWeb工程的applicationContext.xml文件配置:

<?xml version="1.0" encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-2.0.xsd

http://www.springframework.org/schema/aop

 http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

 <!-- 会话工厂 -->

<beanid="SessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<propertyname="configLocation"value="classpath:hibernate.cfg.xml">

</property>

</bean>

<!--数据层-->

<beanid="dao"class="dao.DaoSupportHibernate3Impl">

<propertyname="sessionFactory"ref="sessionFactory"></property>

</bean>

<!--业务层-->

<beanid="city"class="service.CityServiceImpl">

<propertyname="support"ref="dao"></property>

</bean>

<!--事务管理-->

<beanid="myHibTransactionManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<propertyname="sessionFactory"ref="sessionFactory"/>

</bean>

<!--事务通知-->

<tx:adviceid="txAdvice"transaction-manager="myHibTransactionManager">

<tx:attributes>

<tx:methodname="*"propagation="REQUIRED"/>

</tx:attributes>

</tx:advice>

<!--添加事务-->

<aop:config>

<aop:pointcutid="bizMethods"expression="execution(*com.service.*.*(..))"/>

<aop:advisoradvice-ref="txAdvice"pointcut-ref="bizMethods"/>

</aop:config>

</beans>

以上是整个文件的具体配置,Spring使用 <tx:advice>和 <aop:config> 用来配置事务,具体如何配置你可以参考Spring文档。

(* com.service.*.*(..))中几个通配符的含义:

第一个*——通配任意返回值类型

第二个*——通配包com.service下的任意class

第三个*——通配包com.service下的任意class的任意方法

第四个 .. —— 通配 方法可以有0个或多个参数

此文件会时常出现 Class"org.springframework.orm.hibernate3.LocalSessionFactoryBean"not found和The prefix "tx" for element "tx:advice" is not bound两个问题。

第一个问题解决办法:

出现该问题是在为工程添加Spring包的时候没有添加Spring 2.0 Persistence Core Libraries一项,导致缺少Spring的spring-hibernate3.jar包。

第二个问题解决办法:

出现该问题是定义申明AOP的时候,没有加载schema,只需要在<beans>中要加入“xmlns:aop”的命名申明,并在“xsi:schemaLocation”中指定aop配置的schema的地址。

配置文件如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd

http://www.springframework.org/schema/aop

                     http://www.springframework.org/schema/aop/spring-aop.xsd ">

问题到此解决完。

相关推荐