BackEnd/Spring Boot
[ Spring ] Ioc/Aop 의존관계 주입 개념
jimin-log
2023. 3. 7. 12:50
Spring
스프링은 테스트의 용이성과 의존관계, 느슨한 결합을 없애는데 중점을 두었다.유지보수와 확장에 불편함이 없도록 나왔다.
다른 프래임워크와 가장 큰 차이점은 Ioc / AOP 가 있다.
DI (Dependency Injection)
객체를 사용하기 위해서 외부에서 주입을 받는것
DI 장점
- 의존성으로 부터 격리시켜 코드 테스트에 용의
- DI를 통하여, 불가능한 상황을 Mock과 같은 기술을 통해 안정적인 테스트가 가능
- 코드를 확장하거나 변경 할때 영향을 최소화한다 (추상화)
- 순환참조를 막을 수 있다.
Ioc (Inversion of Control)
자바의 객체를 new로 생성해서 개발자가 관리 하는 것이 아니라 스프링 컨테이너 (Spring Container)에게 맡긴다.
개발자에서 > 프레임워크로 객체 관리의 권한이 넘어감 (제어의 역전)
스프링 컨테이너에서 객체를 관리하기 위한 방법 = 빈( Bean )으로 설정
※ Bean
스프링 컨텐츠에서 관리되는 객체들을 빈이라고 한다.
@Component
클레스 객체에 어노테이션을 선언하여 빈으로 등록한다.
스프링에서 관리해달라는 요청, 객체가 싱글 톤 형태로 되어 사용된다.
@Configuration
클레스 객체에 어노테이션을 선언하여 여러개의 객체를 빈으로 등록한다.
내부에 빈을 @Bean 선언해서 등록.