[Spring] Annotation

개발자·2021년 4월 30일
0

Spring

목록 보기
3/18
post-thumbnail

스프링 컨테이너가 관리하는 자바 객체

스프링 컨테이너

빈을 생성하고 관리하는 컨테이너

1. Bean Factory

  • Bean 객체를 생성하고 관리하는 역할
  • Bean 객체가 사용되는 시점에 생성됨(Lazy Loading)

2. Application Context

  • Bean Factory처럼 Bean 객체를 생성하고 관리하는 기능.
    -> Bean Factory를 상속 받음
  • 트랜잭션 관리, 메시지 기반의 다국어 처리, AOP 등 DI와 Ioc 외에도 많은 부분을 지원
  • 컨테이너가 구동되는 시점에 빈 생성됨(Pre Loading)

Annotation

  • @Configuration
    싱글톤 보장(한 번만 등록). 빈이 등록되어 있으면 찾아서 반환해준다. 스프링 설정 정보로 인식하고, 스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다. 클래스명에 지정해주며 @Bean 어노테이션과 함께 사용한다.

  • @Bean
    개발자가 직접 제어가 불가능한 외부 라이브러리 또는 설정을 위한 클래스를 Bean으로 등록할 때 사용한다.
    @Bean을 사용하는 클래스는 반드시 @Configuration을 지정해주어야 한다.

  • @Component
    컴포넌트 스캔. 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다. 직접 개발한 클래스를 Bean으로 등록할 때 사용한다.

  • @Autowired : 의존관계 자동으로 주입

  • @Controller : 스프링 MVC 컨트롤러로 인식

  • @Repository : 스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외를 스프링 예외로 변환해준다.


Ref.

https://velog.io/@ehdrms2034/Spring-MVC-Application-Context.xml

profile
log.info("공부 기록 블로9")

0개의 댓글