일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Today
- Total
- 스프링
- 스프링 컨테이너
- 도커
- 라즈베리파이
- DI
- 의존관계 주입
- 스프링 빈
- DI컨테이너
- qualifier
- Spring interceptor
- docker
- 스프링 Configuration
- Spring
- 빈 중복 오류
- RequiredArgsConstructor
- 라즈베리파이4
- 싱글톤 컨테이너
- springsecurity
- Autowired 옵션
- autowired
- HandlerMethodArgumentResolver
- 스프링 싱글톤
- beandefinition
- UsernamePasswordAuthenticationFilter
- 스프링 빈 조회
- Servlet Filter
- 생성자 주입
- ComponentScan
- 객체지향
- 롬복 Qualifier
목록qualifier (2)
그날그날 공부기록
@Qualifier(”빈 이름")을 통해 필드와 빈을 매칭 할 수 있다. 하지만 컴파일시 타입이 체크되지 않는다. 이 경우 직접 @Qualifier(”빈 이름")을 포함하는 애노테이션을 직접 만들어 사용하면 해결할 수 있다. 자바 인터페이스 파일을 생성하여 @를 붙여주거나 클래스 파일을 하나 생성하여 public class → public @interface로 바꿔준다. @Qualifier를 대체할 애노테이션을 만들어야 하므로 ⌘ + O 단축키로 @Qualifier를 검색하여 원래 있던 애노테이션을 복사하여 추가한다. 그 후 기존에 @Qualifier(”빈 이름")으로 매칭해주었던 애노테이션을 추가해준다. 최종 코드는 다음과 같다. //@Qualifier에 있던 애노테이션 시작 @Target({Eleme..
@Autowired를 사용하여 빈을 조회하면 타입이 기준이 된다. 의존관계를 주입받을 경우 DIP를 위해 구현 객체가 아닌 인터페이스를 사용한다. 하지만 2개 이상 빈의 타입이 같으면 오류가 발생한다. 다음과 같이 할인을 위한 DiscountPolicy 인터페이스와 구현 객체가 2개 있다고 생각해보자. 두 객체 모두 @Component를 작성해 스프링 빈으로 스캔되고 등록된다. 이 상황에서 어떤 서비스에서 상위 타입인 DiscountPolicy로 의존관계를 주입받게 된다면 같은 타입의 빈이 2개가 되기 때문에 NoUniqueBeanDefinitionException오류가 발생한다. Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionEx..