Wie kann der Dienst bestimmtes txAdvice im Frühjahr nutzen?
-
13-11-2019 - |
Frage
Ich versuche mein Projekt zu aktualisieren und bin daher zu Transaktionen gekommen.So habe ich es bisher gemacht.
<bean id="userServiceTarget" class="com.forgin.service.UserServiceImpl">
<property name="userDAO" ref="userDAO" />
</bean>
<bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="target" ref="userServiceTarget" />
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_SUPPORTS</prop>
<prop key="is*">PROPAGATION_SUPPORTS</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
Ich habe die Transaktionsattribute wie folgt geändert, bin mir aber nicht ganz sicher, wie ich den Dienst genau damit verknüpfen soll txAdvice
.Da ich im Allgemeinen unterschiedliche Transaktionsattribute für verschiedene Dienste habe, sollte es meiner Meinung nach mehr als eines geben txAdvice
.Gibt es eine Möglichkeit, das auszudrücken? @Transactional
diesen speziellen txAdvice verwenden?
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="is*" read-only="true" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
Lösung
Okay, ich habe es herausgefunden.es ist mir einfach eingefallen.Haha..Ich muss nur noch mehr bereitstellen aop:advisor
Und aop:pointcut
.So einfach ist das.
<aop:config>
<aop:pointcut id="userOperation"
expression="execution(* com.forgin.service.UserServiceImpl.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
<aop:pointcut id="differentOperation"
expression="execution(* com.forgin.service.DifferentServiceImpl.*(..))" />
<aop:advisor advice-ref="txAdviceDifferent" pointcut-ref="differentOperation" />
</aop:config>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow