spring IoC(inversion of control)
IoC는 객체나 메소드를 호출 및 제어를 개발자가 아닌 외부에 의해 결정 되도록 하는 방식입니다. 이 방식을 이용하면 객체간의 결합도를 줄여 유연성있는 유지보수가 가능해집니다. (클래스 교체나 DB변경과 같은)
스프링 IoC 방식은 DL(Dependency Lookup)과 DI(Dependency Injection) 으로 나눌 수 있습니다.
DI (Dependency Injection)
DI 방식은 Setter Injection과 Constructor Injection, Method Injection 으로 나눌 수 있습니다. 그 중 Constructor Injection 방식을 많이 사용한다고 합니다.
Bean
IoC로 제어할 객체는 Bean으로 설정해 관리를 할 수 있습니다. Bean을 설정하는 방법도 몇가지가 있지만 어노테이션을 많이 이용합니다. XML은 spring 2 까지 사용했던 방법이라고 합니다.
Bean으로 설정하려는 클래스에 @Service, @Repository, @Controller, @Component 어노테이션을 각 역할에 맞게 적용해줍니다.
그 후 메타 정보를 component scan 설정을 해주면 자동으로 어노테이션이 있는 클래스를 Bean으로 관리하게 됩니다. 이렇게 하면 클래스를 직접 인스턴스화 하는 대신 인터페이스를 인스턴스화 하는 것으로 결합도를 줄여줄 있게 됩니다.
이 글은 개발 공부하면서 작성하고 있는 글 입니다. 잘못된 내용이 있을 수 있으니 댓글로 남겨주시면 감사하겠습니다.