dev/spring39 Kubernetes에서 Spring @Scheduled 사용하기 개요Spring은 @Scheduled 어노테이션을 사용하여 예약된 작업을 처리하며, 이는 애플리케이션의 인스턴스가 하나만 실행 중인 경우 문제없이 동작한다. 그러나 애플리케이션은 점점 더 컨테이너화되고 있고, Kubernetes와 같은 플랫폼에서 실행되어 수평적 확장을 사용하여 배포하는 경우 애플리케이션은 여러 인스턴스가 실행되고 있다. 예약된 작업은 백그라운드에서 실행되기 때문에 애플리케이션을 수평적으로 확장할 때 예약된 작업이 중복이 발생할 수 있다. The Scenario@Componentclass ScheduledTasks { private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class); private .. 2024. 7. 9. Spring Boot Application Caching 간단한 예제로 Spring Boot Application에서 캐쉬를 구현할 때 어떻게 사용해야하는지 살펴본다. Implementbuild.gradleplugins { id 'java' id 'org.springframework.boot' version '3.3.1' id 'io.spring.dependency-management' version '1.1.5'}group = 'org.igooo'version = '0.0.1-SNAPSHOT'java { toolchain { languageVersion = JavaLanguageVersion.of(21) }}repositories { mavenCentral()}dependencies { implementation 'org.springframework.boo.. 2024. 6. 24. Spring - Modulith - Working with Applicaton Events 개요Spring Modulith는 Spring Boot 애플리케이션에서 논리 모듈을 구련하는 개발자를 지원한다. 모듈을 문서화하고, 모듈에 대한 통합 테스트를 실행하고, 모듈 간 상호 작용을 관찰하고, 모듈 간의 느슨한 결합으로(loosely coupled) 상호 작용을 구현할 수 있도록 한다. 이전글 참고 (https://blog.igooo.org/118) Working with Application EventsSpring Modulith로 구현된 모듈 사이에는 모듈에서 공개된 기능만(public method) 호출하여 사용할 수도 있지만 각 모듈은 서로 가능한 분리된 상태로 모듈 간 연동은 이벤트 게시 및 소비로 연동하여야 한다. 모노리스로 구현된 애플리케이션에서는 아래와 같은 코드를 볼 수 있다. .. 2024. 6. 21. [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. 이전 1 2 3 4 5 6 7 다음