Spring/Annotation
-
spring @ControllerAdvice, @ExceptionHandler 예외처리 방법Spring/Annotation 2023. 6. 8. 18:02
@ExceptionHandler @ExceptionHandler 는 @Controller , @RestController 가 적용된 Bean 에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해주는 기능이다. @ExceptionHandler 에 설정한 예외가 발생하면 handler가 실행된다. @RestController public class MyRestController { ... ... @ExceptionHandler(NullPointerException.class) public Object nullex(Exception e) { System.err.println(e.getClass()); return "myService"; } } 위와 같이 적용하기만 하면 된다. @ExceptionHandler라..
-
[스프링] @Retryable - 특정오류시 재시도Spring/Annotation 2023. 3. 29. 11:53
특정 Exception이 발생했을 경우 일정 횟수만큼 재시도할 수 있는 어노테이션이다. 예를 들어, 서비스 내에서 다른 서비스에 있는 API를 호출할 때 간헐적으로 통신 오류가 발생할 수 있다. 이럴 때 특정메소드에 재시도 할 수 있는 기능이 있다. 사용법은 아주 간단하다. 1. Spring Application에 @EnableRetry 어노테이션 추가 2. 재시도 하고 싶은 메소드에 @Retryable 어노테이션 추가 - include : 여기에 설정된 특정 Exception이 발생했을 경우 retry한다. - exclude : 설정된 Exception 재시도 제외 - maxAttempts : 최대 재시도 횟수 (기본 3회) - backoff : 재시도 pause 시간 @Retryable(maxAtte..
-
[SPRING]스프링 어노테이션 정리Spring/Annotation 2021. 8. 24. 23:46
@Configuration @Configuration: 이 어노테이션을 단 클래스는 빈 설정을 담당하는 클래스가 된다. 이 클래스 안에서 @Bean 어노테이션이 동봉된 메소드를 선언하면, 그 메소드를 통해 스프링 빈을 정의하고 생명주기를 설정하게 된다. 자바 기반의 config가 싫다면 XML 쓰면 된다. @Configuration을 클래스에 적용하고 @Bean을 해당 Class의 method에 적용하면 @Autowired로 Bean을 부를 수 있다. @ComponentScan: @Configuration 어노테이션과 함께 쓰면, 이 클래스는 자바 빈 설정 클래스이며, 이 @ComponentScan 어노테이션에서 제공하는 package 속성을 통해 스프링 빈 범위를 정의할 수 있다. 복수개를 지정하고 싶..
-
[Spring Annotation] 스프링 RequestBody post 전송시 json 필드명 변경(파싱) @JsonPropertySpring/Annotation 2020. 10. 11. 22:03
프론트에서 post 로 데이터 객체를 보내게 되면 서버에서 RequestBody 로 객체를 받아야 하는 경우가 있다. 이때 받게 되는 데이터를 vo로 만들어서 받게 된다. 필드명을 프론트에서 보내는 객체명과 다르게 쓰고 싶은 경우 필드명을 어노테이션으로 받아야 한다. 같게 하려면 프론트필드명과 스프링객체 필드명을 같게만 하면 된다. 안되는 경우는 예를 들어 프론트 json 필드명에 . dot 가 들어간 경우는 아래 @JsonProperty 를 사용해야 한다. 프론트에서는 다음과 같이 post 로 데이터를 전송시 { "relationship.name": "someting" } 서버에서는 프론트 필드명과 서버받는 객체의 필드명을 달리 하려면 아래와 같이 @JsonProperty 를 추가하면 된다. publi..