Spring/Spring

Spring/Spring

[Spring] @Bean 애너테이션의 name 속성과 value 속성

1. @Bean 애너테이션의 name 속성과 value 속성 @Bean 애너테이션엔 name과 value 속성이 모두 존재한다. 두 속성 모두 빈의 이름을 지정하는 데 사용된다. 동시에 @AliasFor 애너테이션으로 서로를 지정하고 있어 상호 대체가 가능하다. @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Bean { @AliasFor("name") String[] value() default {}; @AliasFor("value") String[] name() default {}; //... } name 속성은 빈의 이름을 명..

Spring/Spring

[Spring] 빈 중복 시 해결방법(@Autowired, @Qualifier, @Primary)

1. 의존관계 자동주입 스프링은 애노테이션 기반의 의존성 주입(DI) 기술을 제공하는데, 대표적인 애노테이션이 바로 @Autowired이다. @Autowired는 해당 애노테이션을 붙인 요소(메서드, 필드)에서 의존하는 객체와 동일한 타입의 빈을 찾아 주입해준다. 즉, 의존관계를 자동으로 주입해준다. @Autowired는 타입을 기준으로 빈을 조회하기 때문에 동일한 타입의 빈이 2개 이상 존재할 때 아래와 같은 빈 중복 문제가 발생할 수도 있다. 마찬가지로 @Configuration+@Bean 조합으로 수동으로 빈을 등록할 때도 동일하게 발생할 수 있는 문제다. @Component public class FixDiscountPolicy implements DiscountPolicy {} @Componen..

Spring/Spring

[Spring] 트랜잭션 전파 옵션

트랜잭션 관련 포스팅 [Spring] 트랜잭션 추상화 정리 [Spring] 트랜잭션 동기화 정리 [Spring] 트랜잭션 AOP 동작 흐름 [Spring] 트랜잭션 AOP 사용 시 주의점 (ft. Spring AOP self-invocation) [Spring] 스프링 트랜잭션 전파와 롤백 [Spring] 트랜잭션 전파 옵션 트랜잭션 전파 옵션 스프링은 다양한 트랜잭션 전파 옵션을 제공한다 전파 옵션에 별도의 설정을 하지 않으면 REQUIRED가 기본으로 사용된다 실무에서는 대부분 REQUIRED 옵션을 사용하고(+아주 가끔 REQUIRES_NEW), 나머지는 거의 사용하지 않는다 나머지 옵션은 이렇게 있다는 사실만 알아두고, 필요할 때마다 찾아보자 1) REQUIRED (default) 트랜잭션이 필수..

Spring/Spring

[Spring] 스프링 트랜잭션 전파와 롤백

트랜잭션 관련 포스팅 [Spring] 트랜잭션 추상화 정리 [Spring] 트랜잭션 동기화 정리 [Spring] 트랜잭션 AOP 동작 흐름 [Spring] 트랜잭션 AOP 사용 시 주의점 (ft. Spring AOP self-invocation) [Spring] 스프링 트랜잭션 전파와 롤백 [Spring] 트랜잭션 전파 옵션 트랜잭션 전파란? 트랜잭션을 각각 사용하는 것이 아니라 트랜잭션이 이미 진행중인데, 여기에 추가로 트랜잭션을 수행하면 어떻게 되는가? 기존 트랜잭션과 별도의 트랜잭션을 따로 진행해야 하는가? 혹은 기존 트랜잭션을 그대로 이어 받아서 트랜잭션을 수행해야 하는가? 이렇게 복수의 트랜잭션을 사용할 경우 동작 방식을 결정하는 것을 트랜잭션 전파(propagation)라고 한다 참고로 스프링..

Spring/Spring

[Spring] 트랜잭션 AOP 사용 시 주의점 (ft. Spring AOP self-invocation)

트랜잭션 관련 포스팅 [Spring] 트랜잭션 추상화 정리 [Spring] 트랜잭션 동기화 정리 [Spring] 트랜잭션 AOP 동작 흐름 [Spring] 트랜잭션 AOP 사용 시 주의점 (ft. Spring AOP self-invocation) [Spring] 스프링 트랜잭션 전파와 롤백 [Spring] 트랜잭션 전파 옵션 트랜잭션 프록시 동작 방식 @Transactional 애노테이션이 특정 클래스나 메서드에 하나라도 있으면 트랜잭션 AOP는 프록시를 만들어서 실제 객체(위 그림에서는 BasicService) 대신 컨테이너에 빈으로 등록한다 따라서 클라이언트가 스프링 컨테이너에 의존관계 주입을 요청하면 실제 객체 대신 프록시가 주입된다 프록시는 실제 객체를 상속해서 만들어지기 때문에 다형성을 활용할 ..

코택
'Spring/Spring' 카테고리의 글 목록 (2 Page)