Skip to content
AnSungHo edited this page Oct 22, 2022 · 5 revisions

📕@Bean

Bean이란?

  • 스프링 컨테이너에 의해 관리되는 JAVA 객체를 의미

왜 Bean을 쓰나요?

  • IoC와 DI의 원리가 스프링 컨테이너에 의해 적용된다.

Bean 등록 방법

  • Component Scan

    • @Component를 명시하여 빈을 추가하는 방법, 클래스 도는 인터페이스 단위에 사용
    • @Component외에 @Controller, @Service, @Repository, @Configuration들도 컴포터넌트 스캔의 대상이다.
      • @Controller - 스프링 MVC 컨트롤러로 인식된다.
      • @Repository - 스프링 데이터 접근 계층으로 인식하고 해당 계층에서 발생하는 예외는 모두 DataAccessException으로 변환한다.
      • @Service - 특별한 처리는 하지 않으나, 개발자들이 핵심 비즈니스 계층을 인식하는데 도움을 준다.
      • @Configuration - 스프링 설정 정보로 인식하고 스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다. (물론 스프링 빈 스코프가 싱글톤이 아니라면 추가 처리를 하지 않음.)
  • Bean

    • 개발자가 컨트롤이 불가능한 외부 라이브러리들을 Bean으로 등록하고 싶은 경우에 사용
    • 메소드 또는 어노테이션 단위에 붙일 수 있다.
  • 원초적인 방법

    • xml설정파일에 빈을 직접 등록하는 방법.(xml이외에 파일도 있음)
  • componext-scan(xml)

    • xml내에 componetn-scan을 할 패키지를 선언 후 패키지 각각 클래스에 어노테이션을 붙여서 빈을 등록한다.

🔆참조