본문 바로가기

WEB/Spring

의존성 주입(DI)과 어노테이션

  • 의존성 주입이란?
    - 클래스 내부에서 필요한 객체를 직접 생성하지 않고, 외부에서 필요한 객체를 주입한다.
    - 의존관계를 외부에서 주입 해주는것 같다고 해서 의존성 주입(DI)라고 한다.

 

스프링 컨테이너가 빈을 생성하는 과정

1.컴포넌트를 스캔한다.

2.컨테이너에 인스턴스를 생성하고 저장한다

3.객체간의 의존관계를 파악하여 객체를 주입한다

 

  • 애노테이션이란?
    • 아래와 같이 @기호로 시작하는 것을 애노테이션라고 한다.
    • Java가 제공하거나, 사용자가 정의해서 사용할 수 있다.

    애노테이션 기능
    • 어플리케이션 실행시 특정기능을 실행한다
    • 컴파일러가 코드의 문법 에러를 체크한다

 

  • 자주 사용하는 어노테이션
스프링 관련 어노테이션 설명 위치
@Component 컴포넌트가 붙은 클래스를 찾으면 스프링 컨테이너에 인스턴스로 등록한다 클래스
@Autowired 스프링 컨테이너는 관리하고 있는 객체 중에에서 @Autowired 어노테이션이 붙은 필드에 맞는 객체를 찾아내어 주입한다 필드
테스트 관련 어노테이션 설명 위치
@SpringBootTest 스프링 테스트 환경을 실행한다.
테스트를 위해 임시로 어플리케이션을 실행한다
클래스
@Test 해당메소드를 단위테스트로 설정한다 메소드
롬복 관련 어노테이션 설명 위치
@Getter Getter 메소드를 생성한다 클래스
@Setter Setter 메소드를 생성한다 클래스
@NoArgsConstructor 디폴트 생성자 메소드를 생성한다 클래스
@AllArgsConstructor 모든 멤버변수를 초기화하는 생성자 메소드를 생성한다 클래스
@ToString 객체의 정보를 반환하는 toString 메소드를 생성한다 클래스
@Data 위 메소드를 모두 생성한다 클래스
@Log4j2 로그객체를 생성하여 로깅 메소드를 사용할수 있다 클래스
@Slf4j 로그객체를 생성하여 로깅 메소드를 사용할수 있다 클래스

'WEB > Spring' 카테고리의 다른 글

컨트롤러의 파라미터 수집  (0) 2022.12.08
Controller-GET, POST, DELETE, PUT  (0) 2022.12.08
MVC 패턴  (0) 2022.12.08
스프링 프레임워크  (0) 2022.12.08
Spring 시작하기-설치, 프로젝트 생성, etc  (0) 2022.12.08