본문 바로가기
반응형

Spring56

[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.
[Spring] 코틀린 springdoc-openapi, swagger - enum 소문자, 원하는 값으로 보여주기 swagger에서 request, response에 enum 값은 별도 설정을 안 하면 enum의 name이 나온다. data class GetUserResponse( val type: UserType, val name: String ) enum class UserType { NORMAL, VIP } 근데 아마 대부분 enum name을 대문자로 설정할 건데 실제 request, response 될 때 받는 값을 소문자로 쓰고 있을 거다. (아닐 수도..) 그래서 swagger에서 소문자로 보여주고 싶었는데 이상하게 설정을 해도 잘 안 보였다. 결국 해결했는데 설정하는 방법을 알아보자. enum 원하는 값으로 보여주는 방법 2가지 방법이 있다. 1. @get:JsonValue enum class User.. 2022. 9. 9.
반응형