首先看一下完整的配置: <? xml version="1.0" encoding="UTF-8" ?> < beans xmlns ="http://www.springframework.org/schema/beans" xmlns:tx ="http://www.springframework.org/schema/tx" xmlns:jee ="http://www.springframework.org/schema/jee" xmlns:aop ="http://www.springframework.org/schema/aop" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" 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/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd" > < bean id ="localDataSource" class ="org.apache.commons.dbcp.BasicDataSource" > < property name ="driverClassName" value ="org.apache.derby.jdbc.ClientDriver" /> < property name ="url" value ="jdbc:derby://localhost:1527/myeclipse;create=true" /> < property name ="username" value ="classiccars" /> < property name ="password" value ="myeclipse" /> </ bean > < bean id ="entityManagerFactory" class ="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" > < property name ="persistenceUnitName" value ="MyBlogPU" /> < property name ="dataSource" ref ="localDataSource" /> < property name ="jpaVendorAdapter" > < bean class ="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" > < property name ="showSql" value ="true" /> < property name ="generateDdl" value ="true" /> < property name ="database" value ="ORACLE" /> </ bean > </ property > < property name ="loadTimeWeaver" > < bean class ="org.springframework.instrument.classloading.SimpleLoadTimeWeaver" /> </ property > </ bean > < bean id ="jpaDialect" class ="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /> < bean id ="transactionManager" class ="org.springframework.orm.jpa.JpaTransactionManager" > < property name ="entityManagerFactory" ref ="entityManagerFactory" /> < property name ="jpaDialect" ref ="jpaDialect" /> </ bean > <!-- 在xml中显示地配置切点和切面。--> <tx:advice id="txAdvice"> <tx:attributes> <tx:method name="find*" read-only="true"/> <tx:method name="get*" read-only="true"/> <tx:method name="list*" read-only="true"/> <tx:method name="*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <aop:config> <!-- 所有名字以"Service"结尾的bean的所有public方法 --> < aop:pointcut id ="allServiceMethodsPointcut" expression ="execution(**Service.*())" /> <!-- 所有名字以"WS"结尾的bean的所有public方法 --> < aop:pointcut id ="allWSMethodsPointcut" expression ="execution(**WS.*())" /> < aop:advisor pointcut-ref ="allServiceMethodsPointcut" advice-ref ="txadvice" /> < aop:advisor pointcut-ref ="allWSMethodsPointcut" advice-ref ="txadvice" /> </ aop:config > </ beans >