반응형
PSA 잘 만든 인터페이스
확장성이 좋지 못한 코드 or 기술에 특화되어 있는 코드
- 테스트하기 힘들다
- 변화에 유연하지 못함
잘 만든 인터페이스
JDBC를 쓰다가 하이버네이트로 전환해야 하는 상황
- JDBC를 하이버네이트로 변경 했지만, 나의 코드가 바뀌지 않는다
스프링이 제공해주는 대부분의 API가 PSA다. (약 90%)
ex) Resources, Transactions, JDBC, ORM ...
대표적인 PSA
@Transactional
PlatformTransactionManager 인터페이스를 사용해서 구현되어있음
구현체 종류
JpaTransactionManager / DatasourceTransactionManager ...
따라서 빈이 바뀌더라도 트랜잭션을 처리하는 Aspect 코드는 바뀌지 않는다.
@Cacheable
CacheManager 인터페이스를 사용해서 구현되어있음
구현체 종류
JCachgeManager / ConcurrentMapCacheManager ...
스프링 웹 MVC
@Controller / @RequestMapping / @GetMapping ...
하지만 이것이 Servlet 을 쓰는지, Reactive를 쓰는지 알 수 없다.
대부분의 코드가 추상화가 되어 있기 때문에, Servlet을 Reactive 코드로 바꾸더라도 나의 코드는 바뀌지 않는다.
참고
반응형
'Spring' 카테고리의 다른 글
멀티 모듈 세팅하기 (0) | 2022.08.02 |
---|---|
스프링 컨트롤러 파라미터 한글 깨짐 현상 (0) | 2022.04.11 |
스프링 3대 핵심 - ① IoC (Inversion of Control) (0) | 2020.02.18 |
Spring-PetClinic 프로젝트 실습 1 (0) | 2019.05.14 |
스프링 AOP 개념 (2) | 2018.12.24 |
댓글