Spring AOP + 트 랜 잭 션 제어

applicationContext. xml 프로필
<!--   AOP              -->
<aop:aspectj-autoproxy expose-proxy="true"/>

<!--       -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
  </bean>
  
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
          <tx:method name="get*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="query*" propagation="REQUIRED" read-only="true" />
          <tx:method name="count*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="find*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="list*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="*" propagation="REQUIRED"/>
    </tx:attributes>
</tx:advice>

<aop:config expose-proxy="true" proxy-target-class="true">
   <!--             -->
   <aop:pointcut id="txPointcut" expression="execution(* com.tcl.mie.usercare..service..*+.*(..)) or execution(* com.tcl.mie.usercare..task..*+.*(..))"/>
   <aop:advisor id="txAdvisor" advice-ref="txAdvice" pointcut-ref="txPointcut"/>
 </aop:config>

  expression 설정 상세 정보:
  execution(modifiers-pattern?ret-type-pattern   declaring-type-pattern?name-pattern(parm-pattern)  throws-pattern)
  • modifiers - pattern: 방법의 조작 권
  • ret - type - pattern: 반환 값
  • declaring - type - pattern: 방법 이 있 는 가방
  • name - pattern: 방법 명
  • parm - pattern: 매개 변수 명
  • throws - pattern: 이상
  •   예제: 항목 은 이 방식 으로 변경 할 수 있 습 니 다.
      expression="execution(*  pp.business.*.*(..)) or execution(*  pp.business.impl.*.*(..))"

    좋은 웹페이지 즐겨찾기