일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- spring framework
- Spring Boot
- @test
- SpringJDBC
- Framework
- spring aop
- 컨테이너
- Dependency Injection
- myBatis
- XML
- pointcut
- unix
- spring
- 프로퍼티
- @AspectJ
- Spring JDBC
- @Spring-Test
- java spring
- 마이바티스
- AOP
- Di
- JDBC TEMPLATE
- java
- Ubunt
- POJO
- JdbcTemplate
- Linux
- STS
- @JUnit
- 리눅스
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