파란하늘의 지식창고
@ConfigurationProperties를 사용하지 않고 method 내에서 properties의 변수 binding 하기
Study/Java 2024. 2. 4. 14:05

Spring Boot에서 @ConfigurationProperties를 사용하지 않고 method 내에서 Binder class를 사용해서 environment의 지정된 값들을 지정된 객체에 binding 할 수 있다. Binder class는 Spring Boot 2.0 이후 제공되는 기능이다 property-binding-in-spring-boot-2-0. 다음과 같이 Binder를 사용하여 설정 값을 binding 할 수 있다: @Test void testEnv() { ConfigurableEnvironment environment = new StandardEnvironment(); Map map = new HashMap(); map.put("myapp.database.url", "jdbc:mysq..

Google Bard (Gemini)에게 Spring Boot 3.2의 변경점을 물어보았다.
Study/Java 2023. 12. 7. 19:59

오늘 구글이 Gemini라는 AI를 공개했다. https://korea.googleblog.com/2023/12/blog-post_652.html 가장 유능하고 범용적인 AI 모델 제미나이(Gemini)를 소개합니다 모든 사람들에게 더욱 유용한 AI를 만듭니다 이 블로그는 구글 The Keyword 블로그( 영문 )에서도 확인하실 수 있습니다. 순다 피차이(Sundar Pichai) 구글 및 알파벳 CEO 기술의 변화는 과학의 발전, 인류 korea.googleblog.com 관련해서 다수의 동영상을 통해 소개도 하였다. https://www.youtube.com/watch?v=jV1vkHv4zq8&list=PL590L5WQmH8cSyqzo1PwQVUrZYgLcGZcG openai의 gpt4 모델보다 상..

Spring Boot 3.2 Release Notes
Study/Java 2023. 12. 1. 19:50

전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다. https://luvstudy.tistory.com/tag/Release%20Notes https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2-Release-Notes 21 revisions 기준으로 작성됨 Upgrading from Spring Boot 3.1 Parameter Name Discovery Spring Boot 3.2에서 사용하는 Spring Framework version은 더 이상 bytecode를 파싱하여 parameter name을 추론하지 않는다. dependency injection 또는 property binding 관련된 issue가 발생하..

Spring Boot WebMVC에서 Thymeleaf, Mustache ViewResolver 같이 사용하기
Study/Java 2023. 11. 25. 14:01

Spring은 HTML 페이지를 렌더링 하기 위해 Thymeleaf, FreeMarker, Mustache, Groovy 와 같은 Template Engine 을 지원한다. https://docs.spring.io/spring-boot/docs/current/reference/html/web.html#web.servlet.spring-mvc.template-engines 보통 Thymeleaf 를 많이 쓰지만 다른 것과 같이 사용하고 싶은 경우가 있을 수 있다. Spring은 이를 위해 요청에 따라 Template Engine을 분기하여 처리하는 ContentNegotiatingViewResolver 를 제공한다. 설정 사용하려는 template engine 관련 지원 dependency를 다음과 같이 ..

article thumbnail
Spring Boot + Thymeleaf + Tailwind CSS 사용해 보기
Study/Java 2023. 11. 16. 04:11

Nuxt (Vue) 나 SvelteKit (Svelte) 같은 FE 개발 framework를 공부하는 것도 좋긴 한데 너무 빠르게 변화하다 보니 학습에 대한 부담이 크다고 느껴졌다. Spring Boot + Thymeleaf에서 Bootstrap을 사용해본적이 있었다. 그래서 Spring Boot + Thymeleaf 에서 Tailwind CSS를 사용해보고 싶어졌다. Tailwind CSS 소개 https://tailwindcss.com/ Tailwind CSS는 plex , pt-4 , text-center , rotate-90 과 같은 class로 구성된 utility-first CSS framework로, markup에서 바로 어떤 디자인이든 만들 수 있다. html에 style을 설정하는 부분을..

article thumbnail
Spring Release 일정 확인하기
Study/Java 2023. 11. 15. 17:42

Spring 은 현재 JDK Release 일정과 나란히 6개월 주기로 major 혹은 minor Release를 배포하고 있다. Spring Framework, Spring Boot, Spring Cloud 등 여러 프로젝트들이 각각 Release 일정이 있는데 언제 Release가 되는지 확인하고 싶은 경우 아래 사이트를 참고하면 된다. https://calendar.spring.io/ 해당 페이지 아래의 iCal 링크를 구글 캘린더, 아이폰이나 안드로이드 캘린더 같이 본인이 자주 사용하는 달력 어플에 등록하여 일정을 확인할 수도 있다. https://calendar.spring.io/ical 하지만 위 사이트에서 일정을 클릭하면 각 Release에 대한 github milestone을 확인할 수 있..

Spring AOT 살펴보기
Study/Java 2023. 11. 8. 20:49

spring boot reference 문서를 보면 3.x 이후 GraalVM Native Image Support 문서가 추가되었다. Spring Boot 3.x부터 GraalVM Native Image를 정식 지원한다. https://docs.spring.io/spring-boot/docs/current/reference/html/ https://docs.spring.io/spring-boot/docs/current/reference/html/native-image.html https://graalvm.github.io/native-build-tools/latest/maven-plugin.html 빌드 시점에 런타임에 수행되어야 할 부분까지 미리 처리하여 docker image를 생성한다. 이로 인해..

[troubleshooting] Spring Boot 테스트 코드 실행 시 java.lang.NoClassDefFoundError: io/micrometer/context/ThreadLocalAccessor 에러
Study/Java 2023. 8. 18. 05:35

Spring Boot 3.1.1에서 테스트 코드 실행 시 다음과 같은 에러가 발생했다. Caused by: java.lang.IllegalStateException: MicrometerObservationRegistryTestExecutionListener requires micrometer-observation 1.10.8 or higher at org.springframework.test.context.observation.MicrometerObservationRegistryTestExecutionListener.(MicrometerObservationRegistryTestExecutionListener.java:80) ... 59 common frames omitted Caused by: java...