일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- @JUnit
- XML
- JdbcTemplate
- Spring Boot
- SpringJDBC
- STS
- @test
- pointcut
- POJO
- 리눅스
- Ubunt
- @AspectJ
- AOP
- 마이바티스
- 컨테이너
- java
- Spring JDBC
- Framework
- Di
- myBatis
- java spring
- @Spring-Test
- spring
- spring framework
- JDBC TEMPLATE
- 프로퍼티
- unix
- Linux
- spring aop
- Dependency Injection
Archives
- Today
- Total
개키우는개발자 : )
Bean의 생명주기 메소드 본문
반응형
요약 및 결론
스프링 컨테이너의 빈 등록 방식을 활용하여, Factory 메소드에서 DispatcherServlet과 같은 객체를 빈으로 관리하는 방법과 ApplicationContextAware 인터페이스를 사용하여 스프링 컨테이너가 빈에 필요한 정보를 어떻게 주입하는지 살펴봤습니다.
핵심 내용
스프링 빈 등록 방식:
- Factory 메소드를 활용한 빈 등록:
- 기존의
TomcatServletWebServerFactory
와DispatcherServlet
같은 객체를 스프링 빈으로 등록하는 방법을 학습. - 이러한 빈들을 스프링 컨테이너가 관리하게 함으로써 유연한 확장성을 확보할 수 있습니다.
- Factory 메소드에서 반환 타입으로 추상화된 타입을 사용하는 것이 좋은데, 이는 나중에 Tomcat이 아닌 다른 서블릿 컨테이너로 교체될 가능성을 대비하기 위함입니다.
- 기존의
- Factory 메소드를 활용한 빈 등록:
ApplicationContextAware 인터페이스:
- ApplicationContextAware는 스프링 컨테이너가 빈을 관리하는 과정에서 컨테이너 자신을 빈에 주입할 수 있게 도와줍니다.
- ApplicationContextAware 인터페이스를 구현한 클래스는 스프링 컨테이너가 자동으로 ApplicationContext를 주입해 줍니다.
- 이를 통해 개발자가 명시적으로 컨텍스트를 생성자나 메소드에서 전달하지 않아도 자동으로 의존성 주입이 가능합니다.
라이프사이클 메소드:
- 스프링은 빈을 컨테이너에 등록하고 나서 라이프사이클 메소드를 호출하여, 필요한 의존성(예:
ApplicationContext
)을 자동으로 빈에 주입합니다. - 이 과정에서 빈은 자동으로 스프링 컨테이너가 관리하는 다른 빈들과의 의존성을 설정할 수 있습니다.
- 스프링은 빈을 컨테이너에 등록하고 나서 라이프사이클 메소드를 호출하여, 필요한 의존성(예:
DispatcherServlet의 스프링 컨테이너 주입:
- DispatcherServlet이 ApplicationContextAware 인터페이스를 구현하고 있기 때문에, 스프링 컨테이너는 자동으로 DispatcherServlet에 애플리케이션 컨텍스트를 주입해줍니다.
- 이를 통해 개발자는 명시적으로 컨텍스트를 주입하지 않더라도 서블릿이 스프링 컨텍스트와 함께 작동하도록 할 수 있습니다.
생성자를 통한 의존성 주입:
ApplicationContextAware
대신 생성자를 통한 의존성 주입을 사용하는 것이 더 권장됩니다.- 생성자를 통해 주입받는 방식은 타입 안정성을 보장하며, 필드를
final
로 선언할 수 있어 더 안전한 설계가 가능합니다.
결론:
스프링 컨테이너의 빈 관리와 의존성 주입을 이해함으로써, 더 나은 설계를 할 수 있고 확장성 있는 애플리케이션을 구축할 수 있습니다. ApplicationContextAware
와 같은 구 방식보다는 생성자를 통한 주입 방식이 더 현대적이고 안전한 방법으로 권장되며, 이를 통해 스프링의 자동 의존성 주입 기능을 효과적으로 활용할 수 있습니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션5 - 독립 실행형 스프링 애플리케이션' 카테고리의 다른 글
SpringBootApplication (0) | 2024.10.06 |
---|---|
@Component 스캔 (1) | 2024.10.06 |
자바코드 구성 정보 사용 (0) | 2024.10.06 |
스프링 컨테이너로 통합 (0) | 2024.10.06 |
애노테이션 매핑 정보 사용 (0) | 2024.10.06 |
Comments