<!-- jms 事务管理 --> < bean id ="jmsTransactionManager" class ="org.springframework.jms.connection.JmsTransactionManager" > < property name ="connectionFactory" ref ="jmsQueueConnectionFactory" ></ property > </ bean > < bean id ="jmsTransInterceptor" class ="web.common.JMSTransInterceptor" > < property name ="jmsTransactionManager" ref ="jmsTransactionManager" ></ property > </ bean > < bean id ="jmsTransAdvisor" class ="org.springframework.aop.support.RegexpMethodPointcutAdvisor" > < property name ="advice" > < ref local ="jmsTransInterceptor" /> </ property > < property name ="patterns" > < list > < value > send* </ value > </ list > </ property > </ bean > < bean id ="jmsTransTemplate" abstract ="true" class ="org.springframework.aop.framework.ProxyFactoryBean" > < property name ="interceptorNames" > < list > < value > jmsTransAdvisor </ value > </ list > </ property > </ bean > interceptor import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; public class JMSTransInterceptor implements MethodInterceptor ... { private PlatformTransactionManager jmsTransactionManager; public PlatformTransactionManager getJmsTransactionManager() ...{ return jmsTransactionManager; } public void setJmsTransactionManager( PlatformTransactionManager jmsTransactionManager) ...{ this.jmsTransactionManager = jmsTransactionManager; } public Object invoke(MethodInvocation invocation) throws Throwable ...{ Object result=null; try...{ TransactionStatus ts=jmsTransactionManager.getTransaction(new DefaultTransactionDefinition()); result=invocation.proceed(); jmsTransactionManager.commit(ts); }catch (Exception e) ...{ e.printStackTrace(); } return result; }}