Spring

[Spring] 의존성 주입

로아다 2023. 7. 3. 14:47
728x90
반응형
Java Bean Object (자바빈 객체)

 - 데이터 클래스를 만들 때 자주 사용하던 클래스의 형태를 자바빈 객체라고 한다.

 - 필드값(속성)의 접근 제어자는 private이어야 한다.

 - 필드값에 대한 접근은 Getter/Setter를 통해 이루어져야 한다.

 - 기본 생성자가 반드시 존재해야 한다. (다른 생성자를 쓰고싶다면 기본 생성자를 반드시 명시해줘야 한다.)

 - 자바빈 스타일의 객체는 다양한 프레임워크, API, 라이브러리 등에서 기본 형태로 생각하기 때문에 반드시 지켜야 한다.

 

스프링이 자동으로 컨텍스트에 등록하는 어노테이션들

 - @Component : 컨텍스트 로드시에 스프링이 자동으로 수거해가는 대상이 된다. 컴포넌트 스캔을 통해 특정 패키지의 컴포넌트들을 수거할 수 있다.

 - @Controller : MVC 패턴에서 컨트롤러 역할을 하는 컴포넌트들을 표시해놓는 어노테이션.

 - @Repository : MVC 패턴에서 모델 역할을 하는 컴포넌트들을 표시해놓는 어노테이션.

 - @Service : MVC 패턴에서 비즈니스 로직을 수행하는 컴포넌트들을 표시해놓는 어노테이션.

 

@Autowired를 통한 의존성 주입

 - @Autowired 적용되어 있는 지원은 컨텍스트 영역에 등록된 컴포넌트들 중 알맞은 컴포넌트를 자동으로 찾아 인스턴스를 주입해준다.

 - 생성자를 사용하지 않아도 스프링이 대신 인스턴스를 생성하여 주입해주기 때문에 클래스간의 결합도가 낮아져 유지보수성이 올라가는 효과가 있다.

 

컨텍스트에 빈(bean) 등록하기

 - <bean> 사용해 직접 등록하거나 컴포넌트 스캔을 통해 등록할 수 있다.

 - 컨텍스트에 등록된 자바 객체는 빈(bean)이라고 부른다.

 - 컨텍스트에 등록된 객체들은 알아서 적재 적소에 사용된다.

 - 컨텍스트에 등록되는 객체들은 싱글톤 패턴으로 등록된다.

 

싱글톤 (Singleton)

 - 애플리케이션 내에서 단 하나의 인스턴스만 가지고 있는 것이 보장되는 디자인 패턴

728x90
반응형