Setting Up Annotation Driven Transactions in Spring in @Configuration Class
So in the latest version of Spring we are able to use the @Configuration
annotation to setup our configurations for Spring. Now in JavaConfig it is possible to use the @AnnotationDrivenTx
(@AnnotationDrivenTx Reference Link) annotation to setup transactions in our Config class. But sinc开发者_开发技巧e JavaConfig has been decommissioned I was wondering if anyone knew how to setup something similar without JavaConfig and without needing to add anything to the application-context.xml
. Here is what I basically have for my Config class
@Configuration
@ImportResource("config/application-context.xml")
public class Config {
public @Bean DataSource dataSource() {
//get and return datasource
}
public @Bean Service1 getService1() {
//return service1Impl
}
}
And I'd like to make Service1
transactional. If anyone has any ideas on how to do this or if this is just not possible please let me know.
Thanks!
You can now use @EnableTransactionManagement
.
See this post for more details: http://blog.springsource.com/2011/06/10/spring-3-1-m2-configuration-enhancements/
It seems like it isn't possible according to this forum post:
there may be a more first-class mechanism for enabling annotation-driven TX in
@Configuration
classes in Spring 3.1, but in the meantime, the recommended approach is to use@ImportResource
to include a snippet of XML that declares<tx:annotation-driven/>
Wait: but you seem to have an XML context anyway. Why not add <tx:annotation-driven/>
to it and use @Transactional
?
Take a look at http://blog.springsource.com/2011/02/17/spring-3-1-m1-featurespec. Spring 3.1's FeatureSpecification classes such as TxAnnotationDriven are designed to solve exactly the problem described above.
精彩评论