Spring
-
Enum 유효성 검사하기Spring 2021. 8. 23. 22:58
요약 - @Pattern과 enum은 같이 쓸 수 없다. - 커스텀어노테이션을 만들어서 @JsonCreator와 같이 사용해서 처리했다. 파라미터 검증중 @Valid + @Pattern 이용해서 enum을 검증하려고 했다. 예를들어 Y,N만 들어가는 enum 타입의 멤버필드에 A를 집어 넣으려고한다면??? 물론 데이터가 들어가진 않겠지만 에러코드가 상당히 이쁘지 않을 것이다. 아래 코드를 통해 처리했다. DTO import com.example.test.test.constant.YnCode; import javax.validation.constraints.Pattern; import lombok.Getter; import lombok.ToString; @Getter @ToString public clas..
-
Spring Cloud Config 설정값 변경 후 반영하는 방법Spring 2021. 6. 3. 00:22
요약 1. POST로 http://서비스명/actuator/refresh 호출 2. @RefreshScope 어노테이션 사용 3.서버재기동(비추...) spring cloud config를 사용하면 설정값들을 외부에서 따로 관리하게 되는대 이때 설정값 변경시 반영을하는 방법이 여러가지가 있다. 기존에는 1.번과 같은 방법밖에 몰랐는대 이번에 팀장님께서 PR날리신 것을 보고 궁금해서 찾아봤더니 @RefreshScope 요런 방식도 있었다! @Value어노테이션을 사용하는 경우 같이 사용하면 매우 좋은것 같다!
-
myBatis LocalDate , LocalDatetime 바인딩하는 법Spring 2020. 11. 15. 19:48
mybatis를 사용하면서 Request Dto의 날짜 필드를 매번 String으로 받아서 사용했었다. 왜냐하면 mybatis에서 #{regDate} or #{regDateTime}이 같이 바인딩이 안되기 때문이었다. 아래와 같은 에러 발생 Field error in object 'testModel' on field 'regDate': rejected value [2020-01-01]; codes [typeMismatch.testModel.regDate,typeMismatch.regDate,typeMismatch.java.time.LocalDate,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolv..
-
spring batch 링크모음Spring 2020. 4. 21. 00:09
Spring Batch란?- 스프링 배치는 벡엔드의 배치처리 기능을 구현하는 데 사용하는 프레임워크입니다.배치는 스프링 배치 설정 요소들을 간편화시켜 빠르게 설정하는 데 도움을 줍니다. Spring Batch 장점1) 대용량 데이터 처리에 최적화되어 고성능을 발휘2) 효과적인 로깅, 통계 처리, 트랜잭션 관리 등 재사용 가능한 필수 기능을 지원3) 수동으로 처리하지 않도록 자동화되어 있습니다.4) 예외사항과 비정상 동작에 대한 방어 기능 존재. Spring Batch 단점- 스케줄 기능 제공하지 않음- 스케줄링을 위해 jenkins나, Quarz를 같이 사용 Spring Batch 개념https://jojoldu.tistory.com/324http://wiki.gurubee.net/pages/viewpa..
-
@Valid 와 @ControllerAdvice로 DTO 예외처리하기Spring 2020. 1. 12. 00:54
@Valid 세팅 및 사용하기 해당편에 이어서 @Valid와 @ControllerAdvice를 이용한 Exception처리를 하려고한다.@Vailid 사용법에 관한 설명은 생략한다. 위의 링크를 참고하면된다 @Valid는 @ControllerAdvice와 같이 쓰면 궁합이 굉장히 좋다! 회사에서도 물론 같이 쓰고있고 ㅎㅎ @ControllerAdvice 이란?@Controller 전역에서 발생할 수 있는 예외를 잡아 처리해주는 annotation이다. 바로 코드로 보자 패키지구조빨간점의 클래스들만 주의 깊게 보면 된다 Controllerpackage com.example.validtest.controller; import com.example.validtest.model.UserDto; import lo..
-
@Valid 세팅 및 사용법Spring 2019. 10. 26. 13:25
간단소개 API를 만들다 보면 유효성체크를 꼭하기 마련이다. 매번 유효성체크를 로직을 작성하는 것도 매우 반복되는 일이다. Javax에서 @Valid 어노테이션을 제공해주고 있는대 Bean Validation을 아주 쉽고 간편 유효성검사를 제공해주고 있다! 예제 환경 SpringBoot 2.1.9Java 1.8Maven 세팅 pom.xml org.springframework.boot spring-boot-starter-web org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test SpringBoot 프로젝트를 생성 할 때, SpringBoot-Web을 선택하면 javax.validation은 자동으로 들어가 ..
-
MyBatis속성 setting값의 우선순위는 어떻게 될까?Spring 2019. 9. 15. 23:35
요약 - mybatis-config.xml에 setting한 값보다 쿼리문에 작성한 세팅값이 우선순위가 높다.- 쉽게 말해 css의 style속성을 엘리먼트에 직접 주는 것과 같은 우선순위임. 세팅 예제 mybatis-config.xml // 여기부분 user.xml INSERT INTO url (name, age) VALUES (#{name}, #{age}) mybatis-config 파일에서 userGeneratedKeys 속성의 기본값은 false이다. 여기서 테스트를 위해 true로 세팅 한뒤, user.xml의 userGeneratedKeys 속성을 false로 주게되면 userGeneratedKeys는 작동하지 않는다.