📌 IoC Container
- IoC는 Inversion Of Control Container의 약자로 기존의 모든 제어를 클라이언트의 코드가 가지도록 구현하던 것을 framework가 제어를 나누어 가져 가 의존 관계의 방향이 달라지게 되는 것 을 말한다.
- IoC는 Spring framework로 객체를 관리하고 객체의 생성을 책임지고, 의존성까지 관리해주는 컨테이너, 좀 더 간단하게 이야기하면 Spring framework의 IoC가 객체의 생명주기를 관리하며 DI(Dependency Injection) 패턴을 제공하여 클라이언트는 비즈니스 로직에 집중할 수 있도록 해주는 것이다.
- 이러한 IoC를 담당하는 핵심 컨테이너가 BeanFactory이고, 이를 확장한 IoC 컨테이너가 ApplicationContext이다. 이는 기본적인 객체로써 접근할 수 있다.
📌 Bean
- Bean은 Spring framework의 IoC가 관리하는 객체를 말한다.
- IoC에 의해서 자바 객체가 생성되면 이 객체를 Bean라 한다. 이러한 Bean은 @Bean, @Component, @Service, @Repository와 같은 어노테이션으로 생성될 수 있으며, application.xml와 같은 XML 파일에 Bean을 직접 설정해주는 것도 가능하다.
- 우리가 알던 기존의 Java에서는 Class를 생성하고 new를 입력하여 원하는 객체를 직접 생성한 후에 사용했었다. 하지만 Spring에서는 직접 new를 이용하여 생성한 객체가 아닌, Spring에 의하여 관리당하는 자바 객체를 사용합니다. 이렇게
Spring에 의하여 생성되고 관리되는 자바 객체를 Bean이라고 한다. Spring Framework에서는 Spring Bean을 얻기 위하여 ApplicationContext.getBean()와 같은 메서드를 사용하여 Spring에서 직접 자바 객체를 얻어서 사용합니다.
- Bean을 등록하기 위해서는 @Component Annotation을 사용합니다.
@Component Annotation이 등록되어 있는 경우에는 Spring이 Annotation을 확인하고 자체적으로 Bean으로 등록
합니다.
'Spring' 카테고리의 다른 글
[Java] 롬복(Lombok) 설명 & 정리 (0) | 2023.05.16 |
---|---|
[Spring] Gradle 과 Maven (0) | 2022.07.15 |
[Spring] Spring Boot 란 ? (0) | 2022.06.24 |
[Spring] Spring? SpringFramework? (0) | 2022.05.26 |