| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- java
- Linux
- myBatis
- AOP
- STS
- @test
- POJO
- @JUnit
- pointcut
- SpringJDBC
- @Spring-Test
- XML
- 프로퍼티
- unix
- JdbcTemplate
- spring aop
- spring framework
- spring
- JDBC TEMPLATE
- 리눅스
- Ubunt
- Spring JDBC
- Dependency Injection
- 마이바티스
- java spring
- 컨테이너
- Framework
- @AspectJ
- Di
- Spring Boot
Archives
- Today
- Total
개키우는개발자 : )
의존 오브젝트 DI 적용 본문
반응형
결론 및 요약
스프링 컨테이너를 이용하여 의존성 주입(Dependency Injection, DI)을 구현하는 방법을 학습했습니다. HelloController와 SimpleHelloService 간의 의존 관계를 인터페이스를 통해 관리하고, 스프링 컨테이너가 이를 자동으로 처리하여 개발자가 의존성을 명시적으로 관리하지 않아도 되도록 만들었습니다.
주요 내용 요약
인터페이스 도입 및 의존성 분리:
- 기존
SimpleHelloService클래스는 인터페이스를 구현하지 않았으나, 이를HelloService라는 인터페이스로 추상화하였습니다. HelloService인터페이스는sayHello메소드를 정의하고,SimpleHelloService는 이를 구현하는 방식으로 변경하였습니다.- 이렇게 인터페이스를 도입하면,
HelloController는SimpleHelloService클래스에 직접 의존하지 않고HelloService인터페이스에 의존하게 됩니다.
- 기존
스프링 컨테이너와 의존성 주입:
HelloController는 더 이상SimpleHelloService객체를 직접 생성하지 않고, 생성자 파라미터로HelloService타입의 객체를 주입받습니다.- 스프링 컨테이너는
SimpleHelloService와HelloController를 빈으로 등록하고, 컨테이너가 자동으로HelloService객체를 생성하여HelloController에 주입합니다. - 이를 통해 코드 레벨에서 의존성을 제거하고, 스프링이 의존성 관리 및 주입을 자동으로 처리하도록 구성할 수 있습니다.
DI 적용을 통한 유연한 설계:
- 의존성 주입은 코드의 유연성을 높여줍니다. 만약
SimpleHelloService대신 다른 구현체를 사용하고 싶다면,HelloService인터페이스를 구현한 새로운 클래스를 만들어도HelloController의 코드를 수정하지 않고, 스프링 컨테이너에서 빈만 교체하면 됩니다. - 스프링 컨테이너는 DI를 통해 필요한 객체를 자동으로 생성하고 주입하여, 코드의 변경 없이도 유연하게 의존성을 관리할 수 있습니다.
- 의존성 주입은 코드의 유연성을 높여줍니다. 만약
결론:
스프링의 DI는 객체 간의 의존성을 자동으로 관리해주는 강력한 기능입니다. 이를 통해 코드의 결합도를 낮추고, 확장성과 유지보수성을 높일 수 있습니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션5 - 독립 실행형 스프링 애플리케이션' 카테고리의 다른 글
| 애노테이션 매핑 정보 사용 (0) | 2024.10.06 |
|---|---|
| DispatcherSevlet으로 전환 (0) | 2024.10.06 |
| Dependency Injection (0) | 2024.10.06 |
| 의존 오브젝트 추가 (0) | 2024.10.06 |
| 스프링 컨테이너 사용 (0) | 2024.10.06 |
Comments