반응형
Annotation
Bean 이란?
- 애플리케이션의 핵심을 이루는 객체 , Spring IoC컨테이너에 의해 인스턴스화 ,관리 생성이 된다.
- 애플리케이션의 객체가 지정되면 해당 객체는 getBean()메서드를 통해 가져올 수있다.
- 애플리케이션 구동 시 JVM안에서 스프링이 bean마다 하나의 객체를 생성하는 것을 의미 (Singleton : 하나의 Bean 정의에 대해서 Spring IoC Container내에 단 하나의 객체만 존재한다 )
- @Autowired로선언되었을때만들어진bean객체는heap에쌓임 -> 클래스는static영역
- 이런bean객체는GC가관리를하지못한다. --> 컨테이너가중지될때삭제가된다.
- jvm 에서 heap 은 주로 객체가 만들어질 때 쌓인다.. static에는 전체 코드 등이 쌓임
빈 등록
@ComponentScan 어노테이션과 @Component어노테이션을 사용해서 빈을 등록해준다.
스프링 빈 컨테이너가 빈을 생성해줌 , 스프링 빈 컨테이너는 생명 주기를 관리한다.
컨테이너 종류 ApplicationContext, BeanFactory 2가지로 나누어짐
ApplicationContext
구현하고 있는 클래스의 객체관리 및 의존성 주입을 가능하게 해줌
object 생성, 관계설정 ,자동 생성 , 후처리 등등 BeanFactory를 상속받고 있음
@Conponent는
@Controller-@RestController / @Service / @Repository로 나누어진다.
ApplicationContext vs BeanFactory
- 인스턴스화 하는 시점이 다름
- AppliactionContext : pre-loading
- BeanFactory : lazy -loading
- AppliactionContext :
- 스프링이 제공하는 Appliation 지원기능
- Bean의 생성, 조회, 등록 등을 담당
- @Configuration어노태이션이 붙은 자바 파일이나, xml로 만든 <beans로 시작하는 appcontext를 설정정보로 등록하고 @Bean이 붙은 메소드의 이름을 가져와 빈 목록을 만듦
- BeanFactory:
- 빈생성과 제어 관점
- 중요 기능인 Bean 생성, 조회, 등록을 그대로 받고 여기에 스프링에 제공하는 부가기능을 추가로 제공
반응형
'개발(라이브러리,프레임워크) > Spring boot' 카테고리의 다른 글
vsCode 에서 JUnit Test (0) | 2021.05.26 |
---|---|
JPA (0) | 2021.04.04 |
intellij 초기 설정 , vue.js와 연동 (0) | 2021.03.28 |
xss filter & Interceptor (0) | 2020.01.09 |
Spring MVC , Spring Boot (0) | 2019.11.19 |