What does <tx:annotation-driven/> in Spring really do in the code level?
Does it set a flag in a bean ?
Does it load "special" bean 开发者_开发百科which then looks for @Transactional
?
It scans all beans in the application context and creates AOP interceptor for those which are annotated.
This is done via the SpringTransactionAnnotationParser
, which is used by TransactionInterceptor
- the aformentioned interceptor.
Then whenever these beans are accessed, this advice is triggered and a transaction is started before the target method is executed, and committed after the execution.
精彩评论