본문 바로가기
반응형

Spring57

[Spring] Maintenance Mode란? spring docs를 보다가 maintenance mode라는 용어가 있길래 궁금해서 정리해본다. Maintenance Mode란? 한국어로는 유지 모드라고 번역이 된다. 스프링 버전이 올라가면서 더 이상 해당 모듈에 기능을 추가하지 않는 상태를 말한다. 버그나 보안 문제, 꼭 필요한 코드 리팩토링 작업은 발견되면 수정한다고 한다. maintenance mode로 바꾸는 기준은 해당 모듈보다 좋은 기능을 가진 모듈을 만들어서 지워야 하는데 하위 호환성 때문에 바로 지우지 못 하는 경우이지 않을까 생각해본다. 혹시라도 대체제가 있다면 그걸 사용하도록 하자. 버전 업그레이드 되면서 언제 사라질지 모른다. 2023. 2. 14.
[Spring] Spring Boot Configuration Annotation Processor not configured 해결 방법 문제 @ConfigurationProperties 테스트 중에 IntelliJ가 "Spring Boot Configuration Annotation Processor not configured" 경고 문구를 띄워줬다. 경고 문구가 있어도 실행엔 문제는 없다. 근데 거슬린다. 원인 원인을 찾아보니 여기서 찾을 수 있었다. spring-boot-configurtation-processor를 이용하면 쉽게 @ConfigurationProperties를 사용할 수 있다고 추천해주려고 경고를 띄워주는 거 같다. 해결책 build.gradle의 dependencies에 spring-boot-configurtation-processor를 추가해주자. annotationProcessor("org.springframew.. 2023. 2. 10.
[Spring] properties 가져오기 (2) - 4가지 방법으로 읽어오기 바로 앞 포스팅에서 properties의 종류와 우선순위에 대해 알아봤다. 이번 포스팅에선 properties를 읽어오는 4가지 방법에 대해 알아보겠다. properties 읽어오는 방법 아래와 같이 4가지가 있다. 하나씩 알아보자! Environment @Value @ConfigurationProperties getter, setter constructor 0. 테스트 설명 application.yml에 아래와 같이 정의해주자. server: port: 9000 shutdown: graceful ServerProperties를 아래와 같이 만들자. class ServerProperties( val port: Int, val shutdown: String ) application.yml에 정의한 serv.. 2023. 2. 10.
[Spring] properties 가져오기 (1) - 종류, 우선순위 인프런에서 토비님의 스프링 부트 강의를 듣다가 외부 설정 읽어오는 방법이 나오길래 궁금해서 찾아보고 정리한다. application.yml이나 application.properties가 전부인줄 알았는데 그게 아니였다. property 종류 및 우선순위 정말 여러가지가 있는데 여기에 우선순위가 있다. properties를 호출할 때 우선순위가 높은 것부터 가지고 온다. devtools가 active일 때 $HOME/.config/spring-boot에 있는 Devtools global settings properties 테스트에 있는 @TestPropertySource 어노테이션 테스트에 있는 properties 속성 (@SpringBootTest, 애플리케이션 일부를 테스트하기 위한 test 어노테이션.. 2023. 2. 10.
[Spring] MissingKotlinParameterException을 ExceptionHandler로 처리 하는 방법 MissingKotlinParameterException이 발생하는 이유를 알아보고 이를 ExceptionHandler로 처리하는 방법을 알아보자. MissingKotlinParameterException 발생 원인 api request를 @RequestBody로 받을 때 받는 객체의 not null인 필드에 null이 들어온 경우 발생한다. 아래 api를 예를 들어 설명하겠다. @RestController class CourseController { @PostMapping("/course") fun saveCourse(@RequestBody course: Course): String { return "" } } data class Course( val name: String ) /course api에서.. 2023. 1. 15.
[Spring] "has been compiled by a more recent version" 에러 처리 방법 문제 스프링 부트 테스트 좀 해볼려고 새로운 프로젝트를 만들고 서버를 실행시켰는데 갑자기 처음 보는 에러가 발생했다. Exception in thread "main" java.lang.UnsupportedClassVersionError: com/example/prac/PracApplicationKt has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 프로젝트 만들자마자 이렇게 에러가 나면 정말 맥빠진다. 빨리 원인과 해결책을 알아보자. 원인 현재 컴파일된 .. 2022. 12. 19.
[Spring] ReturnValueHandler 추가 방법 (kotlin ver.) 이전 포스팅에선 ArgumentResolver 추가 방법을 다뤘었다. 이번 포스팅에선 ReturnValueHandler 추가하는 방법을 알아보자. ReturnValueHandler란? @Controller class UserController { @ResponseBody 2022. 12. 18.
[Spring] ArgumentResolver 추가 방법 (kotlin ver.) ArgumentResolver란? @RestController class UserController { @GetMapping("/user/{userId}") fun getUser( @PathVariable userId: Long 2022. 12. 18.
[Spring] 코틀린 springdoc-openapi 클래스명 중복 처리 방법 springdoc-openapi를 사용 중인데 이상하게 response에 내가 설정한 class 필드들이 나오지 않았다. 내가 설정한 GetOrderResponse는 아래와 같았다. data class GetOrderResponse( val product: Product ) { class Product( val id: Long ) } 근데 swagger에선 아래와 같이 나왔다. ? 도대체 왜 저렇게 나오는 거지.. 좀 헤맸는데 원인을 찾아냈고 해결책도 찾았다. 원인 data class GetOrderResponse( val product: Product ) { class Product( val id: Long ) } data class GetProductResponse( val product: Produ.. 2022. 9. 9.
반응형