20220201 스터디 정리

2022. 2. 1. 16:57스터디 정리

<< 스프링 빈을 등록하는 2가지 방법 >>

 

  1. 컴포넌트 스캔과 자동 의존관계 설정   > @Component

@Controller,@Service, @Repository의 어노테이션이 붙으면 스프링이 처음 뜰 때 스프링 컨테이너라는 스프링 통이 생기는데  여기에 해당 객체를 생성해서 등록, 관리를 하게 됨. >> 스프링 빈이 관리된다고 하는것

 (↑해당 어노테이션 다 들어가보면 @Component가 들어있음,

@Component가 있으면 스프링 빈으로 자동 등록됨

)

 

(컴포넌트 스캔의 대상은 메인메소드의 패키지의 하위, 동일한 것들. 따로 설정을 해주지않는 이상)

 

2. 자바 코드로 직접 스프링 빈 등록하기   > @Configuration, @Bean

장점 :  상황에 따라 구현 클래스를 변경해야하면 대체가 가능. 설정파일에서만 사용할 객체로 바꿔주면 됨!


 

<< @Autowired >>

   > 생성자에 @Autowired 가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입이라 함

  > 스프링 컨테이너에 올라간 것들만 Autowired기능이 동작됨. new 같은 직접 생성한것들은 X!

 

DI 설정 > 3가지 방법

1) 객체 주입 > 선호되는 방법, 처음 올라가는 시점에 생성자로 딱 한번 생성하고 막아버리는것이 좋음

2) 필드 주입

3) setter 주입 > 호출될 때 public 으로 노출되어있어야함

 

 


 

정적 컨텐츠 :  요청이 오면 스프링 컨테이너에서 관련 컨트롤러를 먼저 찾고 없으면 static파일을 찾게됨.

(웰컴 페이지도 마찬가지. 웰컴 페이지가 있다고 해도 등록해놓은 컨트롤러 주소가 있으면 해당 컨트롤러 호출페이지로 감)

 

'스터디 정리' 카테고리의 다른 글

20220131 스터티 정리  (0) 2022.02.01
20220127-Spring 스터디  (0) 2022.01.27
톰캣 설치  (0) 2021.12.18
서버  (0) 2021.12.03
리눅스공부  (0) 2021.11.23