Grace Nho
3 min readMay 1, 2021

[스프링] AOP 정리

IoC

IoC 는 스프링 프레임워크의 중심이다.

옵젝트들을 생성하고 서로 연결하고 관리를하는 스프링 웹앱의 뇌?라고 해야하나

DI 를 이용해서 이런 일을 한다

쉽게 생각하자면.. 우리가 보통 옵젝트를 만들 때

“new ObjectName()” 이 코드를 적어줘야하는데 이제 그럴 필요 없음

IoC 는 두 1가지의 종류가 있다.

1. BeanFactory

2. ApplicationContext

Inversion of Control 는 전통적인 그런 control 흐름을 바꾼다 이런 뜻인데 이게 무슨 뜻이냐면

보통 전통적인 흐름은

main function 이 메뉴 라이브러리를 통해 함수를 호출하고 , 사용자에게 여러가지 옵션을 제공하고 하나의 옵션이 선택 되면 그 것을 main function 으로 돌려주는 거른 방식인데

IoC 는 이제 그 흐름을 바꾸는데 프로그램이 소프트웨어 프레임워크 위에 써지고 이 프레임워크는 behavioral 그리고 graphical elements 들에 기본적으로 알고 있음

우리가 작성하는 코드는 그냥 fill in the blank, 그 프레임워크가 모르는 부분? 그 빈칸들을 채워주기만 하면 된다.

DI

Dependency Injection 의 약자

IoC 를 구현하기 위해 사용 된다

DI 는 dependent 옵젝트를

Dependency Injection 은 세가지 종류가 있다.

1. 클라이언트 클라스

2. 서비스 클라스

3. Injector 클라스

https://www.tutorialsteacher.com/ioc/dependency-injection#:~:text=Dependency%20Injection%20(DI)%20is%20a,class%20that%20depends%20on%20them.

보시다시피 Injector 클라스가 서비스 클라스를 만들고 Client 옵젝트한테 서비스 클라스를 “inject” 투입한다.

이 주입/투입하는 방법도 3가지 방법이 있다.

첫번째는 Constructor Injection는 서비스 즉 dependency 를 클라이언트 클라스 constructor 에 supply 함.

두 번째는 Property Injction. (Setter Injection) 클라이언트의 public property 를 이용해 supply 함

Method Injection는 클라이언트 클라스가 인터페이스를 구현을 하고 그 인터페이스의 페소드가 depenency 를 supply 함. 그래서 injector 가 클라이언트 클라스에 inject 할 dependency 를 이 인터페이스를 통해 함

No responses yet