Skip to content

[Chapter 03] Spring Bean property 애노테이션 #28

Discussion options

You must be logged in to vote

실무에서 @Primary 애너테이션 사용은 종종 봤는데 @Lazy 는 거의 못 봤습니다.
@Lazy 애너테이션은 복잡한 초기화 로직을 가지고 있을 때 가끔 사용한다고는 하는데 그렇게 권장되는 방식은 아닌 것 같습니다.

반면 @Primary 사용 예시로 CQRS 패턴DataSource 에 적용할 때, 유용하게 사용할 수 있습니다.
아래는 @Primary 애너테이션을 routingDataSource 스프링 빈에 적용한 샘플 코드입니다.

RoutingDataSource.java

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import org.springframework.transaction.support.TransactionSynchronizationManager;

public class RoutingDataSource extends AbstractRoutingDataSource {

    public static final String PRIMARY = "primary";
    public static final String SECONDARY = "secondary";

    @Override
    protected Object determineCurrentLookupKey() {
        if (TransactionSyn…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@JoisFe
Comment options

JoisFe Dec 17, 2023
Collaborator

Answer selected by JoisFe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chapter03 스프링 애플리케이션 기본
3 participants