Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

[스프링AOP실전] 예제 만들기 본문

인프런/[인프런] 스프링 핵심 원리 - 고급

[스프링AOP실전] 예제 만들기

Seung__ 2022. 1. 8. 23:41
  • 지금까지 학습한 내용을 활용해서 유용한 스프링 AOP를 만들어보자.
  • @Trace 애노테이션으로 로그 출력하기
  • @Retry 애노테이션으로 예외 발생시 재시도 하기

 

 

 

1. Repository


@Repository
public class ExamRepository {

    private static int seq = 0;

    /**
     * 5번에 한 번 실패하는 요청
     */
    public String save(String itemId){
        seq++;
        if (seq%5 == 0){
            throw new IllegalStateException("예외 발생");
        }

        return "ok";
    }
}

 

 

2. Service


@Service
@RequiredArgsConstructor
public class ExamService {

    private final ExamRepository examRepository;

    public void request(String itemId){
        examRepository.save(itemId);
    }
}

 

3. Test


@Slf4j
@SpringBootTest
class ExamTest {

    @Autowired
    ExamService examService;

    @Test
    void test(){
        for (int i=0; i<5; i++){
            log.info("client request i={}", i);
            examService.request("data"+i);
        }
    }
}

 

 

4. GitHub: 220108 Example1


 

GitHub - bsh6463/SpringAOP

Contribute to bsh6463/SpringAOP development by creating an account on GitHub.

github.com

 

Comments