의존성 주입/ Dependency Injection 개념/ @setter, @autowired

2022. 5. 3. 16:31Spring

의존성 주입

 

 

소프트웨어 엔지니어링에서 의존성 주입(dependency injection)은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. "의존성"은 예를 들어 서비스로 사용할 수 있는 객체이다. 클라이언트가 어떤 서비스를 사용할 것인지 지정하는 대신, 클라이언트에게 무슨 서비스를 사용할 것인지를 말해주는 것이다. "주입"은 의존성(서비스)을 사용하려는 객체(클라이언트)로 전달하는 것을 의미한다. 서비스는 클라이언트 상태의 일부이다. 클라이언트가 서비스를 구축하거나 찾는 것을 허용하는 대신 클라이언트에게 서비스를 전달하는 것이 패턴의 기본 요건이다. - 위키피디아
코드의 내부에서 객체간의 연결을 이루지 않고, 외부에서 설정을 통해서 객체간을 연결하는 패턴
컴파일시가 아닌 실행시에 의존 관계가 완성되는 방식
스프링의 경우 의존성 주입을 쉽게 적용할 수 있는 프레임워크
 

코드로 살펴보면

 

Chef객체를 생성 , 이것을 Restaurant에 주입하겠다는 의도라면 

 

 

의존성 주입은 @Inject , @Autowird, @Resource 등을 이용하여 어노테이션 설정으로 가능하다.

 


장점