0
我使用spring 3.0.5和hibernate。問題與春天aop。如何確保在提交之後調用攔截器?
- 攔截器正在工作。
- 發送域名到jms隊列。
- 消費者收回它並搜索域,但比數據庫提交更快,我得到空。
如何確定攔截器將在數據庫提交後調用?
appCtx.xml
<tx:annotation-driven order="10" /> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <aop:aspectj-autoproxy /> <bean id="domainProducerHandler" depends-on="domainEventService" class="org.test.service.DomainProducerHandler" factory-method="aspectOf"> <property name="domainEventService" ref="domainEventService" /> <property name="order" value="1" /> </bean> ===================service class===================== @SendDomainEvent @Transactional public ProtoMessage sendDonation(String aa) { Domain domainObj = new Domain(); domainRepository.saveAndFlush(domainObj); return domain; } ==================interceptor class===================** @AfterReturning( pointcut="@annotation(org.test.service.SendDomainEvent)", returning="retVal") public void processDomainReturn(Object retVal) { .... try { domainEventService.publishToQueue(endDonationSuccessEvent); } catch (Exception e) { log.error("error during send endDonationSuccessEvent: " + e); }
}
攔截器類實現Ordered接口。我將訂單參數設置爲tx:annotation-driven order =「10」,但它不起作用。
有@order註釋。 – iddqd