web.xml 에서 applicationContext.xml 과 dispathcerServlet 또는 webApplicationContext
로 분리 할 경우 DB 설정 한 곳에서 (applicationContext 쪽 이다.)
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 어노테이션방식 트랜잭션 -->
<tx:annotation-driven transaction-manager="transactionManager" />
이런 방식으로 어노테이션 방식의 트랜잭션을 설정하였는데
클래스든 메소드든 @Transactional 를 설정하였는데 적용 되지 않을 때가 있다
web 쪽 설정 (webApplicationContext 나 dispatcherServlet 쪽) 에
<!-- 트랜잭션 설정 -->
<tx:annotation-driven proxy-target-class="true"/>
이렇게 설정을 추가 해 보자
applicationContext 쪽에서 DB 설정을 했는데 이 설정은 web 쪽에서 설정 된
빈들에 적용이 안되기 때문에 위와 같이 설정을 해 줘야 @Transactional 이
적용 될 수 있다.
로 분리 할 경우 DB 설정 한 곳에서 (applicationContext 쪽 이다.)
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 어노테이션방식 트랜잭션 -->
<tx:annotation-driven transaction-manager="transactionManager" />
이런 방식으로 어노테이션 방식의 트랜잭션을 설정하였는데
클래스든 메소드든 @Transactional 를 설정하였는데 적용 되지 않을 때가 있다
web 쪽 설정 (webApplicationContext 나 dispatcherServlet 쪽) 에
<!-- 트랜잭션 설정 -->
<tx:annotation-driven proxy-target-class="true"/>
이렇게 설정을 추가 해 보자
applicationContext 쪽에서 DB 설정을 했는데 이 설정은 web 쪽에서 설정 된
빈들에 적용이 안되기 때문에 위와 같이 설정을 해 줘야 @Transactional 이
적용 될 수 있다.
댓글