20
2021-04-19 13:06:55
2
114

@Transactional 테스트 시에는 적용되고 서버구동 시 적용이 안돼서 질문드립니다.


안녕하세요!

트랜잭션을 적용하려고 Transactional 어노테이션을 service 메소드에 추가하였습니다.

트랜잭션이 제대로 적용되었는지 확인하기 위해 테스트 클래스 작성하여 테스트를 진행하였고, 트랜잭션이 제대로 적용되어 오류 발생 시 롤백이 되는 것을 확인 했습니다.

이후 서버를 구동하여 테스트하였는데 트랜잭션이 제대로 적용되지 않았습니다.


트랜잭션 관련 설정은 applicationContext.xml 에 추가하였으며,

두 경우가 같은 applicationContext.xml 파일은 참조하도록 설정한 후 테스트를 하였습니다.

트랜잭션 설정은 아래와 같습니다.

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<tx:annotation-driven proxy-target-class="true"/>


https://truepia.tistory.com/275

위 글 참조하여 cglib dependency도 추가하고 <tx> 선언부에 proxy-target-class 속성도 추가해보았는데 계속 테스트에서는 제대로 되고 서버에서는 적용이 되지 않습니다.


왜 두 경우가 트랜잭션이 다르게 적용되는지, 동일하게 적용되게 하려면 어떤 부분을 확인해야하는지 답변 부탁드립니다ㅠ

0
  • 답변 2

  • Oniony
    30
    2021-04-19 13:14:40

    에러로그, 구현된 코드, 스프링 dependencies 가 있으면 여러분들이 답변해주실거에요.

  • 20
    2021-04-20 14:58:28

    넵 감사합니다 추가해서 다시 올려봐야겠네요!

  • 로그인을 하시면 답변을 등록할 수 있습니다.