[java] 애노테이션을 이용한 의존성 주입
의존성 주입
의존성 주입은 객체 간의 결합을 느슨하게 하고 유연성을 높이기 위해 사용되는 디자인 패턴입니다. 이는 객체들이 직접 생성하는 대신 외부로부터 필요한 의존성을 주입받는 방식으로 동작합니다.
의존성 주입을 통해 코드의 유지보수성과 확장성을 높일 수 있으며, 단위 테스트의 용이성을 증가시킵니다.
애노테이션을 이용한 의존성 주입
자바에서는 애노테이션을 이용하여 의존성 주입을 수행하는데, 주로 @Autowired
와 @Qualifier
애노테이션을 활용합니다.
@Autowired
애노테이션은 스프링 프레임워크에서 사용되며, 해당 애노테이션이 지정된 필드나 메소드의 매개변수에 해당하는 타입의 빈을 주입합니다. 빈이 여러 개 존재하는 경우 @Qualifier
와 함께 사용하여 주입할 빈을 명시적으로 지정할 수 있습니다.
public class ExampleService {
@Autowired
private ExampleRepository exampleRepository;
// ...
}
위 코드에서 @Autowired
애노테이션을 사용하여 ExampleRepository
타입의 빈을 필드에 주입하고 있습니다.
예제 코드
아래는 스프링 프레임워크를 사용한 의존성 주입 예제 코드입니다.
@Configuration
@ComponentScan("com.example")
public class AppConfig {
@Bean
public ExampleRepository exampleRepository() {
return new ExampleRepositoryImpl();
}
@Bean
public ExampleService exampleService() {
return new ExampleService();
}
}
위 코드에서 @Configuration
애노테이션은 설정 클래스를 나타내며, @ComponentScan
은 지정된 패키지에서 컴포넌트를 찾도록 지정합니다.