Spring Framework/Spring boot

Spring Framework/Spring boot

Springboot 이벤트 발행과 처리 흐름 이해하기: @EventListner, ApplicationEventPublisher, Dispatcher

@EventListenerSpring 이벤트 리스너 어노테이션으로, 특정 이벤트가 발생했을 때 실행할 메서드를 지정할 수 있습니다.@EventListenerfun handle(event: CustomEvent) { // 이벤트 처리 로직}메서드의 파라미터 타입으로, 어떤 이벤트를 처리할지 결정합니다.기본 값은 동기적으로 실행됩니다.동시성이 중요한 작업이 아니라면, 비동기로 처리하여 효율적으로 처리할 수 있습니다.@TransactionalEventListener트랜잭션 상태에 따라 이벤트 처리 시점을 제어할 수 있습니다.An EventListener that is invoked according to a TransactionPhase If the event is not published within ..

Spring Framework/Spring boot

Spring @Transactional 동작 방식과 readOnly=true 사용 시 주의할 점 정리

Transaction 필요한 이유2 가지 이상의 작업을 하나의 트랜잭션으로 처리하기 위해서순서대로 작업되던 중 작업 A와 작업 B 사이의 오류가 발생하면, 이미 작업 A는 처리되어 commit 된 시점이어서 A의 돈이 차감되는 문제가 발생합니다.문제가 발생하여 rollback을 진행해도, 마지막 commit 시점이 작업 A가 끝난 시점이어서 문제가 발생하기 전 시점으로 롤백할 수 없습니다. JDBC Transaction 이해하기Connection connection = dataSource.getConnection();try (connection) { connection.setAutoCommit(false); // execute some SQL connection.commit();} catch (SQ..

Spring Framework/Spring boot

Spring 멀티 모듈에서 환경별 YML 파일 분리 및 관리 방법 (Gradle & processResources)

문제 : Multi Module yml 파일 분리 안됨문제 상황멀티 모듈 프로젝트 환경에서 yml 파일을 각 모듈의 역할에 맞게 관리하고자 했다.기존에는 yml 파일 내용이 중복으로 저장되고 있어, 이를 수정하거나 삭제할 때 번거로움이 있었다. 이를 A 모듈은 A와 관련된 설정 파일만 관리하고 B 모듈은 B와 관련된 설정 파일만 관리하도록 변경했다. 기대 효과중복되는 yml 설정 코드를 제거할 수 있다.수정, 삭제 시 한 곳에서만 처리 가능하다.각 모듈의 역할에 따라 설정 코드를 관리할 수 있다.기존에는 실행 모듈의 yml에 모든 정보를 가지고 있어, 어느 모듈에 대한 설정 코드인지 알기 어려움 Multi Module 분리하기A, B, C 모듈이 있다고 했을 때 각 모듈이 담당하는 설정들을 모듈 내 ym..

Spring Framework/Spring boot

Spring BeanFactoryPostProcessor로 글로벌 @Lazy 설정 및 Bean 초기화하기

2025.01.21 - [Spring Framework/Spring boot] - Spring Boot @Lazy를 사용한 Bean 지연 초기화하기 Spring Boot @Lazy를 사용한 Bean 지연 초기화하기Spring JPA를 통해 Entity 클래스를 설정하면서 지연로딩이라는 단어를 많이 들어봤을 것입니다.이번 글에서는 Bean Class를 Lazy Loading 하여, 사용하지 전까지 ApplicationContext에 초기화하지 않는 방법에kylo8.tistory.com 위 글에서는 특정 빈 클래스를 Lazy 설정하는 방법에 대해 작성했습니다. 간단히 @Lazy 어노테이션을 통해 빈 초기화 시점을 늦추는 식으로 처리했습니다. 이번 글에서는 BeanFactoryPostProcessor 인터페이..

kylo
'Spring Framework/Spring boot' 카테고리의 글 목록 (3 Page)