[SPRING] Spring @Transactional이 작동하지 않습니다.
SPRINGSpring @Transactional이 작동하지 않습니다.
내가 주석 TX 봄 지원을 사용하려고합니다.
응용 프로그램 컨텍스트 XML :
<?xml ...>
<tx:annotation-driven/>
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
...
</bean>
<bean id="repository" class="Repository">
<constructor-arg ref="dataSource"/>
</bean>
</beans>
실제 코드 :
public class Repository {
@Transactional
public void save(Op op) {
System.out.println("Transaction active:::: " + TransactionSynchronizationManager.isActualTransactionActive());
...
}
}
전화 걸기 코드 :
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/integration-context.xml"})
public class RepositoryTest {
@Autowired
private Repository repository;
@Test
public void testRepositoryPersistence() {
Op op = mock(Op.class);
repository.save(op);
}
}
그리고 그것은 거짓을 제공합니다.
내가 뭘 잘못하고 있죠?
해결법
-
==============================
1.구성에이 내용을 추가해야합니다.
구성에이 내용을 추가해야합니다.
<context:annotation-config/> <tx:annotation-driven transaction-manager="transactionManager"/> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean>
RepositoryClass에 인터페이스를 추가하십시오.
public class Repository implements IRepository{ @Transactional public void save(Op op) { System.out.println("Transaction active:::: " + TransactionSynchronizationManager.isActualTransactionActive()); ... } }
그리고 당신의 테스트 수업에서
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/integration-context.xml"}) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false) public class RepositoryTest extends AbstractTransactionalJUnit4SpringContextTests{ @Autowired private IRepository repository; @Test public void testRepositoryPersistence() { Op op = mock(Op.class); repository.save(op); } }
이 자습서를 참조하십시오.
from https://stackoverflow.com/questions/25910350/spring-transactional-is-not-working by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 왜 내 JSF + Spring 웹 애플리케이션은 HTML 페이지 대신 JSF 소스 코드를 출력합니까? (0) | 2019.02.24 |
---|---|
[SPRING] 런타임시 Bean에 동적 특성 적용 (0) | 2019.02.24 |
[SPRING] JSTL 및 Spring : 인수를 사용하여 메소드 액세스 (0) | 2019.02.24 |
[SPRING] 경로의 시작 부분과 일치하는 antMatcher (0) | 2019.02.24 |
[SPRING] Spring 통합 - 대기열 / 폴러는 아무런 조치없이 스레드 풀을 다 소모하는 것 같습니다. (0) | 2019.02.24 |