본문 바로가기

dev/spring30

[Spring Framework 6.2] Support for fallback beans 개요Spring Framework 6.2에 추라될 기능 중 @Fallback에 대하여 알아본다. AS-ISSpring 컨테이너에 동일한 유형의 Bean이 여러개가 있고, autowited에 사용할 Bean을 경정하는 경우 @Primary 어노테이션 추가가 필요하다.interface UserRepository { String findNameById(String id);}class MysqlUserRepository implements UserRepository { @Override public String findNameById(String id) { return "mysql " + id; }}class MongoUserRepository implements UserRepository { @Overrid.. 2024. 6. 15.
[Spring Framework 6.2] Bean Background Initialization 개요Spring Framework 6.2에 추가될 기능 중 Bean Background Initialization에 대해 알아본다. Quick StartSpring Framework 6.2 Dependency 설정아직 Spring Framework 6.2가 정식 릴리즈 되지 않아서 Snapshot 버전으로 설정한다.plugins { id 'java' id 'org.springframework.boot' version '3.3.1-SNAPSHOT' id 'io.spring.dependency-management' version '1.1.5'}java { toolchain { languageVersion = JavaLanguageVersion.of(21) }}repositories { mavenCentra.. 2024. 6. 13.
Hello, Java 22! 개요Java 22가 정식으로 출시되었고, Spring을 통해 관련 기능을 검토한다. A Quick Programming Note이 게시글 전반적으로 functional interface type인 LanguageDemonstrationRunner를 사용한다. Throwable를 던지도록 선언된 functional interface로 걱정할 필요가 없다.package com.example.demo;@FunctionalInterfaceinterface LanguageDemonstrationRunner { void run() throws Throwable;} ApplicationRunner에 LanguageDemonstrationRunner의 구현체를 주입후 run 메소드를 통해 호출한다. // ..... 2024. 6. 9.
[Spring] Spring Framework CDS(Class Data Sharing) (Project Leyden) https://spring.io/blog/2023/10/16/runtime-efficiency-with-spring에 대한 후속 조치로 Project Leyden 최적화를 위해 많이 사용되지 않는 JDK의 CDS(lass Data Sharing) 기능에 대한 지원이 Spring Framework 6.1에 제공되어 CDS에 대하여 알아본다. GraalVM, Proejct CRaC를 사용하면 Spring Boot 애플리케이션을 수십 밀리초에 시작할 수 있다. 하지만 왜 CDs에 관심을 가져야 하는지 알아보자.GraalVM 및 Proejct CRaC보다 제약 조건과 부작용이 적고, OpenJDK에서 즉시 사용 가능한 기술이다.대부분의 사람들은 CDS를 사용하지 않지만 상대적으로 적은 작업으로 합리적인 시작 시.. 2024. 6. 6.
REST Assured로 API 테스트하기 개요REST Assured는 Java 언어에서 Ruby, Groovy와 같은 동적 언어처럼 Rest 서비스를 테스트하고 검증하는 것은 쉽게 사용할 수 있게 해준다. 특징Given When Then 패턴으로 가독성 높은 테스트를 작성한다.Json, XML, Plain Test 응답값 검증이 쉽다.Spring, Kotlin. Scala Support Example{ "lotto": { "lottoId":5, "winning-numbers": [2,45,34,23, 7,5,3], "winners": [ { "winnerId": 23, "numbers": [2,45,34, 23, 3, 5] }, { "winnerId": 54, "numbers": [52,3,12,11, 18.. 2024. 6. 3.
Spring - Modulith 개요Spring Modulith를 사용하면 잘 구주화된 Spring boot 애플리케이션을 구축할 수 있고, 도메인 기반의 애플리케이션 모듈을 찾고 작업할 수 있도록 가이드 해준다.DDD를 위한 구조적인 코드 검증 및 문서화.모듈식 모놀리스 아키텍처는 단순성과 유지관리 용이성의 장점. Spring Boot Structuring CodeSpring Boot does not require any specific code layout to work. However, there ar some best practices that help.If you wich to enforce a structure based on domains, take a look at Spring Modulith. Locating the M.. 2024. 6. 3.