728x90
반응형
이전 글에서 Autowired에 대한 포스팅을 했으니 읽고 오시면 이해하시기 쉽습니다. 굳이 읽지 않으시고 바로 보셔도 무방합니다.
[Spring] @Autowired - 의존성 자동주입
Spring 프레임워크에서 @Autowired 어노테이션은 자동 의존성 주입을 강력한 도구로 사용됩니다. @Autowired을 통해 Spring은 Application Context에서 필요한 Bean을 찾아서 해당 필드에 주입합니다. 이를 통해
muscleking3426.tistory.com
Spring에서 @Autowired 어노테이션은 일반적으로 Spring 컨테이너가 자동으로 빈을 주입할 때 사용됩니다. 그러나 때로는 특별한 경우에 수동으로 빈을 등록하고 주입할 때가 있습니다. 이번에는 @Autowired 어노테이션으로 수동으로 등록된 빈을 불러오는 예제를 살펴보겠습니다.
@Autowird와 함께 수동으로 빈 등록하기
1. 서비스 클래스
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
// 나머지 코드
}
2. 리포지토리 인터페이스
public interface MyRepository {
void doDatabaseOperation();
}
3. 수동으로 등록한 리포지토리 구현체
@Repository
public class MyRepositoryImpl implements MyRepository {
@Override
public void doDatabaseOperation() {
// 데이터베이스 동작 수행
}
}
4. 수동으로 등록한 서비스 클래스
@Service
public class MyManualService {
private final MyRepository myRepository;
@Autowired
public MyManualService(@Qualifier("myRepositoryImpl") MyRepository myRepository) {
this.myRepository = myRepository;
}
// 나머지 코드
}
5. 수동 빈 등록 설정 클래스
@Configuration
public class ManualBeanConfig {
@Bean("myRepositoryImpl")
public MyRepository myRepository() {
return new MyRepositoryImpl();
}
// 다른 빈 등록 및 설정
}
@Qualifier 어노테이션 사용
@Autowired를 사용할 때, 여러 빈이 있을 경우, 어떤 빈을 주입할지 명시할 때 사용합니다.
위 예제에서 @Qualifier("myRepositoryImpl")를 통해 수동으로 등록한 빈을 선택적으로 주입할 수 있습니다.
이렇게 수동으로 빈을 등록하고 @Autowird 어노테이션을 사용해 주입하는 방법을 통해 Spring의 의존성 주입 메커니즘을 더욱 유연하게 활용할 수 있습니다. 수동 빈 등록은 특별한 경우에 유용하게 사용될 수 있으므로, 상황에 따라 적절하게 선택하여 활용하시면 더욱 좋습니다.
728x90
반응형
'Spring' 카테고리의 다른 글
[Spring] 빈 라이프 사이클 : Bean 초기화, 소멸 (인터페이스) (1) | 2024.01.25 |
---|---|
[Spring] AOP 프로그래밍이란 ? (1) | 2024.01.25 |
[Spring] @Autowired - 의존성 자동주입 (0) | 2024.01.24 |
[Spring] 의존성 주입 - 세터 주입, 생성자 주입방식과 비교 (0) | 2024.01.23 |
[Spring] 의존성 주입 (DI) - 생성자 주입 (2) | 2024.01.22 |