Spring
-
순단과 같은 네트워크 에러가 가끔 발생하는 부분에 대한 처리를 어떻게 해야 할지 고민하는 도중 spring-retry를 발견하게 되었고, 간편하게 retry 로직을 수행할 수 있을 것 같아 학습하고 적용해 보았다. Spring project https://github.com/spring-projects/spring-retry Dependency implementation("org.springframework.retry:spring-retry") implementation("org.springframework:spring-aspects") @EnableRetry @Configuration @EnableRetry public class MyConfig { ... } @Retryable @Retryable( ..
[Spring] spring-retry 재시도 with TestCode순단과 같은 네트워크 에러가 가끔 발생하는 부분에 대한 처리를 어떻게 해야 할지 고민하는 도중 spring-retry를 발견하게 되었고, 간편하게 retry 로직을 수행할 수 있을 것 같아 학습하고 적용해 보았다. Spring project https://github.com/spring-projects/spring-retry Dependency implementation("org.springframework.retry:spring-retry") implementation("org.springframework:spring-aspects") @EnableRetry @Configuration @EnableRetry public class MyConfig { ... } @Retryable @Retryable( ..
2024.03.23 -
@Value를 이용하여 application.yml에 등록한 property값을 읽어오는 경우가 있다 이러한 경우에 test를 작성할 때 원하는 값을 넣어주고 싶은 경우 어떻게 하는지 알아보도록 하자 크게 2가지의 상황으로 나누어 볼 수 있다 @SpringBootTest @SpringBootTest를 사용하지 않는 경우 @Component @Data public class TestComponent { @Value("${my.test.value}") public String initValue; public void printA() { System.out.println(initValue); } } @SpringBootTest public class UnitTest { @Autowired public Test..
[Test] 테스트 작성시 @Value 주입 방법@Value를 이용하여 application.yml에 등록한 property값을 읽어오는 경우가 있다 이러한 경우에 test를 작성할 때 원하는 값을 넣어주고 싶은 경우 어떻게 하는지 알아보도록 하자 크게 2가지의 상황으로 나누어 볼 수 있다 @SpringBootTest @SpringBootTest를 사용하지 않는 경우 @Component @Data public class TestComponent { @Value("${my.test.value}") public String initValue; public void printA() { System.out.println(initValue); } } @SpringBootTest public class UnitTest { @Autowired public Test..
2024.01.01 -
@Transactional은 Proxy 방식으로 동작한다 간략하게 어떻게 proxy가 생성되는지 알아보자 @Service @RequiredArgsConstructor public class TestService { public void insertTest(){ // do something } } public class TestServiceProxy{ private final TransactonManager tm = TransactionManager.getInstance(); public void insertTest() { try { tm.begin(); // 트랜잭션 전처리(트랜잭션 시작, autoCommit(false) 등) insertTest(); // 기존 로직 tm.commit(); // 트랜잭션..
[Spring] @Transactional 동작방식 및 주의사항@Transactional은 Proxy 방식으로 동작한다 간략하게 어떻게 proxy가 생성되는지 알아보자 @Service @RequiredArgsConstructor public class TestService { public void insertTest(){ // do something } } public class TestServiceProxy{ private final TransactonManager tm = TransactionManager.getInstance(); public void insertTest() { try { tm.begin(); // 트랜잭션 전처리(트랜잭션 시작, autoCommit(false) 등) insertTest(); // 기존 로직 tm.commit(); // 트랜잭션..
2023.11.21 -
특정 테스트를 작성할 때 input의 형태는 정해져 있는데 많은 값들을 검증해야 하는 경우에 각각을 테스트케이스로 만들기는 너무 귀찮고 번거롭다.. 이러한 상황에서 활용할 수 있는 JUnit 어노테이션을 알아보자. Dependency 스프링 부트를 이용해서 개발하고 있다고 하면 테스트를 작성하기 위해 추가해야 할 dependency는 간단하다 // gradle dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } // maven org.springframework.boot spring-boot-starter-test test 사용법 예시로 다양한 osType별 system type 체크가 필요할 때 우..
[SpringTest] @ParameterizedTest 사용해보기특정 테스트를 작성할 때 input의 형태는 정해져 있는데 많은 값들을 검증해야 하는 경우에 각각을 테스트케이스로 만들기는 너무 귀찮고 번거롭다.. 이러한 상황에서 활용할 수 있는 JUnit 어노테이션을 알아보자. Dependency 스프링 부트를 이용해서 개발하고 있다고 하면 테스트를 작성하기 위해 추가해야 할 dependency는 간단하다 // gradle dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } // maven org.springframework.boot spring-boot-starter-test test 사용법 예시로 다양한 osType별 system type 체크가 필요할 때 우..
2023.11.17