IT/Spring
[Spring] Bean
올빼밋.
2022. 6. 18. 18:07
728x90
개념
Bean
Spring Container에서 생성되는 객체
Container
- 인스턴스의 생명주기를 관리
- 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것
- 개발자가 작성한 코드의 처리과정을 위임받은 독립적인 존재
- 적절한 성정만 되어있다면, 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤
Spring Container
- Spring Framework의 핵심부에 위치
- 종속 객체 주입을 이용하여 Appication을 구성하는 Component들을 관리
Bean
- Spring IoC Container가 관리하는 자바 객체
- Spring IoC(Inversion of Control) Container에 의해 인스턴스화, 관리, 생성
- Spring Bean Container에 존재하는 객체
- Bean Container는 의존성 주입을 통해 Bean 객체를 사용할 수 있도록 해줌
- Spring에서 Bean은 Singleton으로 존재
- Singleton : 어떤 class가 최초 한번만 메모리를 할당하고(static) 그 메모리에 객체를 만들어 사용하는 디자인패턴
- Spring에서 POJO(Plain Old Java Object)를 Beans라고 일컫음
- POJO : 본래 자바의 장점을 살리는 특정 기술에 종속되어 동작하는 것이 아닌 오래된 방식의 순수한 자바 객체
- Application의 핵심을 이루는 객체
- Container에 공급하는 설정 메타 데이터(xml)에 의해 생성
- Container는 이 메타데이터를 통해 Bean을 생성, Bean Life Cycle, Bean Dependency등을 알 수 있다.
- new 연산자로 생성하는 객체는 Bean이 아니며, ApplicationContext.getBean()으로 얻어질 수 있는 객체는 Bean
- Spring에서의 Bean은 ApplicationContext가 알고있는 객체, 즉 ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미
Bean 생성 방식
Component Scannig
Configuration
XML 파일에 설정
Bean Scope
--> 무슨 말인지 지금은 모르겠다....ㅠㅠ 공부 후, 추후 내용을 추가하기로!
참고 사이트
- https://velog.io/@gillog/Spring-Bean-%EC%A0%95%EB%A6%AC
-
728x90