[转]引用 MyEclipse中applicationContext.xml配置及常见问题
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 ">问题到此解决完。 |