[java]Spring中使用Annotation同时标记JMS+数据库事务
2005-11-17 12:00
441 查看
对spring了解的不够精通,这两天在解决jms异常的过程中发现,spring中提供了jmsTrasactionManager,同样实现了事务管理接口。这样用自动的拦截器,就可以象数据库一样自动控制事务。在同时配置了JMS和数据库事务的时候,两者同时有效。这样系统的消息和数据库事务就轻量级的一致了!
数据库的spring配置参见:http://steeven.cnblogs.com/archive/2005/06/14/174410.html
jms部分如下:
<bean id="remoteJmsConnectionFactory"
class="org.activemq.ActiveMQConnectionFactory">
<property name="useEmbeddedBroker">
<value>true</value>
</property>
<property name="brokerURL">
<value>tcp://localhost:61616</value>
</property>
</bean>
<bean id="jmsTM"
class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory">
<ref bean="remoteJmsConnectionFactory" />
</property>
</bean>
<bean id="jmsTransactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="jmsTM" />
</property>
<property name="transactionAttributeSource">
<bean
class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource" />
</property>
</bean>
<bean
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<property name="transactionInterceptor">
<ref bean="jmsTransactionInterceptor" />
</property>
</bean>
<bean id="destResolver"
class="test.message.EnumDestinationResolver" />
<!-- for send jms to remote server -->
<bean id="remoteJmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="remoteJmsConnectionFactory" />
</property>
<property name="destinationResolver">
<ref local="destResolver" />
</property>
</bean>
应用程序很简单
@Transactional
public class TestServiceImpl implements TestService public void someMethod() getJmsTemplate().send(someMessage);
}
}
数据库的spring配置参见:http://steeven.cnblogs.com/archive/2005/06/14/174410.html
jms部分如下:
<bean id="remoteJmsConnectionFactory"
class="org.activemq.ActiveMQConnectionFactory">
<property name="useEmbeddedBroker">
<value>true</value>
</property>
<property name="brokerURL">
<value>tcp://localhost:61616</value>
</property>
</bean>
<bean id="jmsTM"
class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory">
<ref bean="remoteJmsConnectionFactory" />
</property>
</bean>
<bean id="jmsTransactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="jmsTM" />
</property>
<property name="transactionAttributeSource">
<bean
class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource" />
</property>
</bean>
<bean
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<property name="transactionInterceptor">
<ref bean="jmsTransactionInterceptor" />
</property>
</bean>
<bean id="destResolver"
class="test.message.EnumDestinationResolver" />
<!-- for send jms to remote server -->
<bean id="remoteJmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="remoteJmsConnectionFactory" />
</property>
<property name="destinationResolver">
<ref local="destResolver" />
</property>
</bean>
应用程序很简单
@Transactional
public class TestServiceImpl implements TestService public void someMethod() getJmsTemplate().send(someMessage);
}
}
相关文章推荐
- spring声明事务、annotation事务同时使用注意
- spring中配置sessionfactory使xml和annotation可以同时使用
- java事务全解析(七)--像Spring一样使用Transactional注解(Annotation)
- java事务学习笔记(七)--像Spring一样使用Transactional注解(Annotation)
- spring+hibernate 二级缓存 配置+java使用实例
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 一步步学java框架之Spring-SpringMVC-Hibernate在idea的使用(一)
- 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置
- 译--Spring中 bean定义profiles的使用 javaConfig 和XML配置
- Ehcache 整合Spring 使用页面、对象缓存,java
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- java annotation使用介绍
- java 中JUint4 中使用注解(annotation)
- memcached-java客户端xmemcached使用总结 & 与Spring 集成
- 使用jdb和gdb同时调试java native code
- Java事务处理全解析(七)—— 像Spring一样使用Transactional注解(Annotation)
- Spring Boot 使用Java代码创建Bean并注册到Spring中
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
- spring项目使用hibernate validator 校验请求参数报错 java.lang.NoClassDefFoundError: javax/el/PropertyNotFoundExce