@EnableTransactionManagement
將scann爲@Transactional
所有的Spring Bean,以提供交易管理預定義的包。只能激活@Transactional使用Java配置
是否有可能提供的軟件包列表,將被掃描?
例如:我想在a.b.c
包中支持@Transactional
,但我想忽略x.y.z
包中標記爲@Transactional
的類。
此類需求的原因是三方lib。它幾乎在每個班上都有@Transactional(readonly=false)
,但它只做內存操作。每當我打電話給這個API時,彈簧就會獲得數據庫連接,我真的需要避免這種情況。我想從交易管理中排除這整個庫。我也不能爲這個lib創建單獨的spring context。
難道你不能在你自己的軟件包掃描中添加排除過濾器來忽略3方lib類嗎?請參閱http://www.concretepage.com/spring/spring-component-scan-include-and-exclude-filter-example-using-javaconfig-and-xml-with-annotation-assignable-aspect-and-regex-filter -types – StanislavL
沒有,因爲這些都是春天豆類以及 –
看起來你需要自己AnnotationTransactionAttributeSource在那裏你可以提供TransactionAnnotationParser跳過類,但我不知道如何正確添加源。看到這個http://stackoverflow.com/questions/8316747/using-custom-annotationtransactionattributesource-with-txannotation-driven – StanislavL