본문으로 바로가기

[Annotation(@) 이용해서 트랜잭션 등록하기]

aop 적용을 위해서 작성 했던 부분의 코드 (빨간색표시)는 Annotation(@)을 이용 할 경우 필요 없는 코드이다.

<tx:annotation-driven> 태그를 이용해서 트랜잭션을 어노테이션을 이용해서 사용하겠다 라는 선언 및 등록해놓은 transactionManager bean을 등록해줌.

트랜잭션을 하고자 하는 메서드 혹은 클래스에 @Transactional 작성

순서 정리 : XML

1

2

3

4

    <bean id="transactionManager"

        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource"></property>

    </bean>

Colored by Color Scripter

cs​

1. transaction을 처리해주는 객체 bean 등록 : transactionManager​

1

2

3

4

5

6

    <tx:advice transaction-manager="transactionManager" id="mytx">

        <tx:attributes>

            <!-- 모든 메서드에 트랜잭션을 적용하겠다 라는 설정 -->

            <tx:method name="*"/>

        </tx:attributes>

    </tx:advice>

Colored by Color Scripter

cs​

2. transaction을 구현해 놓은 advice 등록 : <tx:advice>

 2-1. advice에서 transactionManager​를 사용한다.

1

2

3

4

5

    <!-- 포인트 컷 지정 -->

    <aop:config>

        <aop:advisor advice-ref="mytx"

            pointcut="execution(public * service.*ServiceImp.*(..))" />

    </aop:config>

Colored by Color Scripter

cs​

3. transaction advice pointcut(트랜잭션을 적용할 메서드 선언)


순서 정리 : Annotation(@)을 이용한 transaction 적용

1

<tx:annotation-driven transaction-manager="transactionManager"/>

cs​

1. transaction을 Annotation(@Transactional)을 이용해서 적용할 것임을 선언 : transactionManager를 참조 시킨다.

2. Transaction을 적용할 메서드 또는 클래스 위에 @Transactional을 선언해준다.

[요청관련 문제 해결하기]

이런식으로 이미지를 띄우고 싶은데, ​

dispatcherServlcet이 모든 요청을 받고 있기 때문에 나타나는 오류 

<mvc:resources>를 이용해서 해결 할 수 있음.



 










'수업내용 정리 > 정리안된 메모' 카테고리의 다른 글

[DB에 insert하고나서 자동으로 생성되는 key 얻어오기]  (0) 2019.06.16
2019-01-10  (0) 2019.06.16
2019/01/09 과제 정리 및 TIP  (0) 2019.06.16
2019-01-08  (0) 2019.06.16
2019/01/07  (0) 2019.06.16