일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- JdbcTemplate
- java spring
- AOP
- java
- Ubunt
- @JUnit
- Spring Boot
- unix
- Framework
- spring framework
- POJO
- 리눅스
- pointcut
- 프로퍼티
- STS
- 마이바티스
- @Spring-Test
- Spring JDBC
- Dependency Injection
- 컨테이너
- @test
- Linux
- Di
- spring aop
- XML
- myBatis
- @AspectJ
- JDBC TEMPLATE
- spring
- SpringJDBC
Archives
- Today
- Total
개키우는개발자 : )
의존 오브젝트 추가 본문
반응형
결론 및 요약
스프링 컨테이너를 사용하여 애플리케이션에서 객체를 효율적으로 관리하고 재사용하는 방식을 배웠습니다. 특히, 싱글톤 패턴
을 적용하여 중복된 객체 생성을 방지하고, 기존의 HelloController
의 역할을 분리해, SimpleHelloService
라는 서비스 객체를 통해 비즈니스 로직을 위임하는 방식으로 개선했습니다. 이를 통해 코드의 유지보수성을 높이고 책임을 분산시켜 더 효율적인 구조를 만들었습니다.
주요 내용 요약
스프링 컨테이너의 역할:
- 스프링 컨테이너는 객체를 생성하고 관리하며, 객체를 한 번만 생성하여 재사용하는 방식으로 동작합니다. 이를 통해 여러 요청이 동일한 객체를 사용하게 되며, 이는
싱글톤 패턴
과 유사한 효과를 제공합니다. getBean()
메소드를 사용해 스프링 컨테이너에 등록된 객체를 가져와 사용하며, 객체의 생성을 직접 관리할 필요가 없어집니다.
- 스프링 컨테이너는 객체를 생성하고 관리하며, 객체를 한 번만 생성하여 재사용하는 방식으로 동작합니다. 이를 통해 여러 요청이 동일한 객체를 사용하게 되며, 이는
SimpleHelloService 도입:
HelloController
의 로직을 단순화하고 비즈니스 로직을SimpleHelloService
로 분리했습니다. 이를 통해 컨트롤러는 요청을 검증하고 서비스에 작업을 위임하는 역할만 담당하게 되었습니다.SimpleHelloService
는sayHello()
메소드를 통해 인삿말과 이름을 결합하여 반환하는 간단한 역할을 맡습니다.
입력 검증 및 예외 처리:
HelloController
는 클라이언트에서 전달된 파라미터를 검증하며,name
값이 누락된 경우에는 예외를 발생시킵니다. 이를 위해Objects.requireNonNull()
메소드를 사용해null
값 체크를 자동화하고, 비정상적인 요청에 대해 적절한 예외 처리를 추가했습니다.
테스트 및 검증:
- 서버를 실행하여 수정된 코드가 정상적으로 작동하는지 확인했습니다.
HelloController
는 요청을 검증하고,SimpleHelloService
가 인삿말을 생성해 응답으로 반환하는 과정이 기대한 대로 동작했습니다.
- 서버를 실행하여 수정된 코드가 정상적으로 작동하는지 확인했습니다.
결론:
이번 작업에서는 스프링 컨테이너의 객체 관리 기능을 활용하여 객체 생성을 효율화하고, 컨트롤러와 서비스의 역할을 분리해 코드를 보다 유지보수하기 쉽게 만들었습니다. 이를 통해 애플리케이션의 확장성과 안정성이 크게 향상되었습니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션5 - 독립 실행형 스프링 애플리케이션' 카테고리의 다른 글
애노테이션 매핑 정보 사용 (0) | 2024.10.06 |
---|---|
DispatcherSevlet으로 전환 (0) | 2024.10.06 |
의존 오브젝트 DI 적용 (0) | 2024.10.06 |
Dependency Injection (0) | 2024.10.06 |
스프링 컨테이너 사용 (0) | 2024.10.06 |
Comments