✔️ POJO란?
: 특정 자바 모델이나 프레임워크를 따지지 않는 Java Object를 지칭한다. Ex) Java Bean
DL
: 저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 Lockup하는 것 ⇒ DL를 사용하면 컨테이너끼리 종속이 증가하므로 주로 DI를 사용한다.
DI
: 각 클래스간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것
⇒ Setter, Constructor, Method injection이 있다.
컴포넌트 스캔과 자동 의존관계 설정
: 클래스 선언부에 @Component 어노테이션을 붙여넣기
@Controller, @Service, @Repository 모두 @Component 어노테이션을 포함하고 있으며 해당 어노테이션을 통해 등록된 클래스들은 스프링 컨테이너에 의해 자동으로 생성되어 스프링 빈으로 등록됩니다.
자바 코드로 직접 스프링 빈 등록
: 설정 클래스를 만들고 @Configuration 어노테이션을 클래스 선언부 위에 추가하면 됩니다.
그리고 특정 타입을 리턴하는 메소드를 만들고, @Bean 어노테이션을 붙여주면 자동으로 해당 타입의 빈 객체가 생성됩니다.
필터 클래스를 만든다.(servlet의 Filter 인터페이스를 구현하여 … )
public class FirstFilter implements Filter {}
만든 필터를 SpringBean으로 등록한다.
✔️ 여러 개의 필터가 있을 때, 필터의 동작 순서를 FilterRegisterBean의 setOrder() 메소드를 통해 결정할 수 있다.
📌 컨테이너란?
보통 객체의 생명주기를 관리하고 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는
📌 Interceptor란?
client에서 server로 들어온 request 객체를 Controller의 Handler로 도달하기 전 가로채어 원하는 추가 작업이나 로직을 수행 한 후 Handler로 보낼 수 있도록 해주는 Module이다.
📌 Filter ,Interceptor, AOP의 공통점과 차이점?
어플리케이션의 요청 및 응답 처리를 처리하는 점에서는 같지만 작동 방식과 적용 시기에서 차이가 있습니다.
📌 Spring에서의 의존성 주입의 3가지 방법
📌 Filter와 interceptor의 차이점?
📌 IOC란?
: 제어의 역전이라는 뜻으로 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 말한다.
Before) 개발자가 객체를 생성하고 관리하며 프로그램의 제어 흐름을 스스로 조종했다.
After) Spring을 사용하면서 스프링 컨테이너가 프로그램의 제어흐름을 제어하게 된다.