https://github.com/HoJin-jjimgo/Spring
Java에서는 객체를 대부분 new로 생성해서 사용 하지만 Spring에서는 저런 상황이 거의 없다.
-> 대부분 Spring container에 모두 맡긴다[제어의 역전]
-> 그러기 떄문에 Spring으로 작업을 해야한다.
외부로부터 사용할 객체를 받는것
외부 = Spring Container
내가 이해한 바로는 DI는 리팩토링과 같다고 생각한다
-> 코드를 좀더 간결하고 수정을 편하게 바꾸어 준다.
DI 부분은 리팩토링한다로 이해를 했지만
IOC 부분은 코드도 어렵고 길다보니깐 모두 이해하지 못하고 강의를 마무리 지었다.
강의를 다시 수강해본 결과 어떤 내용인지는 알겠다.
말로 설명하기 보다는 코드를 보면서 공부하는 것이 더 좋기 떄문에 자주자주 코드를 되새김질 해볼 것이다.
Spring container로 관리하게 되면 container에 있는 객체들을 Bean이라고 한다.
container로 들어가게 하는 방법은 component, configuration 등등이 있다.
class의 이름을 바꾸어서 bean에 따로 저장을 할수가 있으며 불러올떄에는 바꾼 클래스명을 사용 해야 한다.
(기존 class명은 바뀌지 않으며 class명을 바꿀떄에는 모두 소문자만을 사용 해야 한다.)
ioc가 모두 적용이 되면 실행 코드에 new 생성자 코드는 보이지 않는다.
따로 class를 만들어서 ApplicationContextAware을 implements 한뒤
ApplicationContext 를 참조하는 변수를 선언해 이 값에 값을 입력받고 사용하게 된다.
-> 코드를 보면 이해하기가 쉬움
-> 이 코드 형식은 거의 대부분 동일함