[스프링] Bean

정태규·2023년 3월 16일
0

spring

목록 보기
1/14

Bean 이란?

  • class A,B,C가 있다고 치자.
    이 class들을 Bean으로 등록하게 되면, Spring IoC container에 new A,new B, new C 이렇게 instance화해서 저장한다. 그리고 여기에 각각의 설정에 따른 값을 입혀서 객체를 생성하게 된다. 이러한 객체들을 Bean이라고 한다.

  • IoC Container 안에 있는 Application Context가 위와 같은 역할을 하며, 관리자 같은 역할을 한다. (설정, spring동작에 관한 전략등을 담았다.)

  • Bean 등록을 과거에는 xml로 따로 관리하여 등록했다.(일일이 다 타이핑하고 쳐야해서 관리하기 힘들다...)
    현재는 annotation으로 편리하게 할 수 있다.
    (@Conroller @Service @Bean 등등)

  • annotaion을 모두 스캔해서 Bean으로 자동으로 등록시켜준다.

  • Bean의 이름은 원래 클래스 이름에서 첫글자를 소문자로 바꿔서 등록해준다.(임의 설정 가능)

  • Scope : Bean을 생성하는 규칙

    • singleton(기본값): 컨테이너에 단일로 생성, 처음에 실행될때 클래스를 생성하고 서버가 닫힐때까지 클래스 특성을 그대로 유지한다.
    • prototype : 작업 시마다 Bean을 새로 생성하고 싶은 경우
    • request: http 요청마다 새롭게 Bean을 생성하고 싶은 경우
  • Bean LifeCycle callback

    • callback:어떤 이벤트가 발생하는 경우 호출되는 메서드
    • lifecycle callback: Bean을 생성하고 초기화하고 파괴하는 등 특정 시점에 호출되도록 정의된 함수
    • 주로 많이 사용 하는 함수
      - @PostConstant: 빈 생성 시점에 작업을 수행
      - @PreDestroy: 빈 파괴(주로 어플리케이션 종료)시점에 필요한 작업을 수행

0개의 댓글