일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 리눅스
- Framework
- @AspectJ
- Spring JDBC
- unix
- java
- SpringJDBC
- Linux
- JDBC TEMPLATE
- @Spring-Test
- spring
- @test
- 프로퍼티
- spring aop
- AOP
- java spring
- Spring Boot
- spring framework
- @JUnit
- JdbcTemplate
- myBatis
- STS
- Dependency Injection
- POJO
- Di
- XML
- 마이바티스
- 컨테이너
- pointcut
- Ubunt
Archives
- Today
- Total
개키우는개발자 : )
자바코드 구성 정보 사용 본문
반응형
결론 및 요약
팩토리 메서드를 사용하여 Java 코드로 스프링 빈(Bean)을 등록하고 의존성을 주입하는 방법을 다뤘습니다. 또한, 이를 구성하는 스프링 컨테이너에서의 구성 정보 처리 방법을 학습했습니다. 이는 스프링 애플리케이션에서 좀 더 유연하고 복잡한 빈 생성 및 의존성 주입을 지원하기 위해 사용될 수 있습니다.
주요 내용 요약
팩토리 메서드를 통한 빈 생성:
- 스프링에서 제공하는 팩토리 메서드는 자바 메서드를 사용해 오브젝트를 생성하고, 이를 빈으로 등록할 수 있는 방식입니다.
- 예를 들어, HelloController와 HelloService와 같은 빈 오브젝트를 팩토리 메서드에서 생성하여 스프링 컨테이너에 등록할 수 있습니다.
팩토리 메서드의 이점:
- 복잡한 빈 초기화: 복잡한 초기화나 의존성 주입이 필요한 경우, 팩토리 메서드를 통해 자바 코드로 직접 관리하는 것이 유리합니다.
- 이 방법은 자바 코드를 통해 복잡한 로직을 담아 간결하고 쉽게 관리할 수 있는 장점을 제공합니다.
의존성 주입(Dependency Injection):
- 팩토리 메서드에서 HelloController를 만들 때 HelloService 빈이 주입되어야 합니다.
- 이를 위해 스프링 컨테이너가 필요한 의존성을 주입해주며, 팩토리 메서드의 파라미터로 전달하여 생성자에서 주입받습니다.
스프링 빈 등록:
@Bean
애노테이션: 스프링 컨테이너에 팩토리 메서드가 생성한 오브젝트를 빈으로 등록하려면 메서드에@Bean
애노테이션을 붙입니다.@Configuration
애노테이션: 클래스 레벨에서 이 클래스가 구성 정보를 가진다는 의미로@Configuration
애노테이션을 붙입니다.
스프링 컨테이너와 애노테이션 기반 구성:
- 기존에 사용한 Generic ApplicationContext는 자바 코드를 기반으로 한 구성 정보를 읽을 수 없으므로, AnnotationConfigWebApplicationContext로 변경하여 자바 애노테이션 기반 구성을 처리할 수 있도록 수정했습니다.
팩토리 메서드 적용 테스트:
- 스프링 컨테이너에서 팩토리 메서드와 애노테이션 구성을 통해 잘 동작하는지 확인하는 과정을 진행했습니다.
결론:
팩토리 메서드를 사용해 자바 코드로 복잡한 빈 생성과 의존성 주입을 보다 유연하게 처리할 수 있으며, 스프링의 애노테이션 기반 구성 정보 처리를 통해 애플리케이션의 빈 생성을 효과적으로 관리할 수 있음을 배웠습니다. 다음 시간에는 더 간결한 방식으로 빈을 등록하는 방법을 알아볼 예정입니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션5 - 독립 실행형 스프링 애플리케이션' 카테고리의 다른 글
Bean의 생명주기 메소드 (0) | 2024.10.06 |
---|---|
@Component 스캔 (1) | 2024.10.06 |
스프링 컨테이너로 통합 (0) | 2024.10.06 |
애노테이션 매핑 정보 사용 (0) | 2024.10.06 |
DispatcherSevlet으로 전환 (0) | 2024.10.06 |
Comments