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>
War es hilfreich?

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
scroll top