IoC (Inverrsion of Control)
일반적인 (의존성에 대한) 제어권: "내가 사용할 의존성은 내가 만든다."
일반적으로 우리가 아는 자바 사용법에서는 객체를 생성하여 사용하는 것이 일반적이다.
IoC: "내가 사용할 의존성을 누군가 알아서 주겠지"
스프링에서는 객체를 생성하여 하기 보다는 생성자로 service의 의존성을 받게 된다.
즉, Controller 단에서 객체를 주는게 아닌 Controller의 밖에서 주는 것으로 제어가 역전 되었다라고 표현이 된다.
즉, 의존성을 주는 것이 자신 class가 아닌 다른 곳에서 의존성을 주기 때문에 제어의 역전이라고도 한다.
Bean
Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라는 용어로 부른다.
new 로 새로운 객체를 만들어 사용하는 것은 Bean을 사용했다고 할 수 없다.
즉 Spring에서의 빈은 ApplicationContext가 알고있는 객체, 즉 ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미한다.
Bean은 이렇게 ApplicationContext에서 불러와서 사용할 수 있다.
Bean은 크게 @Component, @Repository, @Service, @Controllerr, @Configuration 등으로 등록을 할 수 있다.
IoC 컨테이너 라는 것이 어노테이션이 있는 것을 찾아 빈으로 등록을 한다.
DI ( Dependency Injection )
위에 Ioc를 얘기하면서 new 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법이다.
'프로그래밍 > 스프링(spring)' 카테고리의 다른 글
[스프링/spring] 스프링 시큐리티적용 ( Spring-security) (0) | 2020.04.12 |
---|---|
[스프링/spring] 스프링 시큐리티 (spring security) - DB 사용안함 (0) | 2020.04.12 |
[스프링/spring] 스프링 로그인 기능 만들기(DB 사용) (10) | 2020.04.12 |
[스프링/java] 스프링 메인화면 만들어 보기 (2) | 2020.04.12 |
[스프링/spring] 스프링 데이터베이스(DB) 연결 (0) | 2020.04.12 |