개발/웹 교육

스프링 네 번째

이게될까 2023. 11. 3. 16:26
728x90
728x90

스프링 빈을 만들 때 마다 @Bean을 계속 하기는 귀찮다. 자동으로 등록하려면 = @ComponentScan

 

의존관계 주입은 어떻게 하는가?

@Autowired로 자동으로 해준다.

생성자에 지정해주면 된다.

시작, 예외 다 지정해줄 수 있다.

디폴트: 내가 있는 폴더의 모든 하위 폴더, 파일

 

의존관계 주입 방법 -> 생성자 주입을 해라!

생성자 주입 : 생성자를 통해 의존관계 주입, 호출 시점에 딱 1번만 호출 , 생성자가 하나만 있다먄 @Autowired 생략 가능

수정자 주입 : 앞에 이름에 setOOOOOOOO (set필드명) 로 만든다. 

필드 주입 : 편하지만 외부에서 변경이 불가능해서 추천 X, 테스트 코드에서만 써보자

일반 메서드 주입 : 한번에 여러 필드 주입 가능, 잘 사용 X

why 생성자 주입?

final 키워드 사용 가능 : 다른 오류들을 컴파일 오류로 잡아준다.

순수 자바 언어의 특징을 잘 살린다.

 

그런데 편리하게 사용하는 방버 없을까?

 

rombok의

@RequiredArgsConstructor

가 다 만들어줘서 안의 생성자 주입을 삭제해도 된다.

의존관계 생성이 편해진다.

 

빈이 1개가 연결되야 하는데 2개가 연결되면 오류가 난다.(고정할인과 % 할인)

@Autowired는 타입 매칭을 시도하고 여러 빈이 있다면 필드 이름과 파라미터 이름으로 빈 이름을 추가 매칭한다.

 즉 구현 파일에서 이름을 바꿔서 할 수 있다.

@Quilifier("이름")을 앞에 붙여줘서 그것을 특징할 수 있다.

@Primary 우선순위를 지정해준다

위에 두개가 동시에 있다면 @Qulifier가 우선권을 가진다.

 

 

728x90

'개발 > 웹 교육' 카테고리의 다른 글

스프링 여섯 번째  (0) 2023.11.05
스프링 다섯 번째  (0) 2023.11.05
스프링 세 번째  (0) 2023.11.02
스프링 두 번째  (0) 2023.10.31
첫 진행  (1) 2023.10.30