스프링의 주요 개념 (Core)
Ioc : Inversion of Control
Inversion : 정반대로 뒤집힘
Control : 제어, 프로그램의 흐름.
= 프로그램의 흐름을 제어하는 주체가 정반대로 뒤집힌다.
= 객체의 흐름(객체의 생성, 사용 등 라이프 사이클)을 제어하는 주체가 정반대로 됨.
원래 객체 생성은 나, 사용자가 new Product(); 했었는데 이걸 스프링이 해준다.
DI :Dependency Injection 의존성 주입
의존한다 = 사용한다 = 객체를 사용한다. = 객체의 메소드, 필드를 사용한다. -> 사용하려면 객체 생성이 먼저
내가 직접 객체를 만드는 것이 아니라, 스프링이 만든 걸 주입 받아 사용한다. (객체에 대한 제어권을 스프링이 가진다. )
스프링이 주입하는 역할.
Contrainer : 공간
스프링빈을 담아두는 공간
Ioc, DI에 따라 스프링이 객체 (Bean)의 생성 관리를 담당하는데 이 컨테이너에 객체를 모아 관리한다.
컨테이너란, 스프링이 객체를 만들어 모아두고 관리하는 곳이다.
우리가 의존성 주입을 요구하면 여기서 찾는다.
Bean :스프링 빈
스프링이 관리하는 객체이다. 컨테이너에 들어 있다.
--------------------------------
직접 객체를 생성하지 않고, 스프링이 객체 생성 관리를 해준다 = 스프링 빈으로 등록해야함
스프링 빈 등록 방법 (DI):
1. @Component
2. @Configuration + @Bean
@Component 는 이미 @Service, @Repository 어노테이션에 포함되어 있다.
스프링이 객체 생성을 하려면
@Autowired
private Service service;
객체 생성 완~
DI 하는 방법은 3가지"
1. 필드 주입 : @Autowired 필드 생성
2. Setter 로 주입 : setter위에 @Autowired
3. 생성자로 주입 받기 : 생성자 위에 @Autowired
'JAVA > Spring' 카테고리의 다른 글
Spring MVC, DDD (0) | 2024.04.14 |
---|---|
게시판 CRUD (0) | 2022.12.06 |
Spring 구조와 @들 그리고 Controller-mapping-service (0) | 2022.12.04 |