Spring PSA

kmb·2022년 7월 21일
0

스프링

목록 보기
4/9
post-thumbnail

일관성있는 서비스 추상화 (PSA, Portable Service Abstraction)

외부 라이브러리들을 어댑터 패턴을 적용해서 공통의 인터페이스로 제어할 수 있게 한 것.
일종의 껍데기를 씌워 추상화한것.

어댑터 패턴 : 클래스의 인터페이스를 사용자가 원하는 다른 인터페이스로 변환하는 패턴. 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들을 함께 동작할 수 있도록 한다.

 
스프링 프레임워크는 서비스 추상화를 위해서 다양한 어댑터를 제공한다.

  1. @Transactional
    기존에는 commit, rollback을 통해서 직접 트랜잭션 처리를 했다면
    @Transactional 어노테이션만으로 트랜잭션 처리가 가능하다.
    JDBC를 사용하는 DatasourceTransactionManager
    JPA를 사용하는 JpaTransacionManager
    Hibernate를 사용하는 HibernateTransactionManager 등의 여러 구현체를 사용할 수 있다.

  2. @Controller
    일반 클래스에 @Controller 어노테이션을 사용하면 요청을 매핑할 수 있는 컨트롤러 클래스가 된다. 또한 의존성 설정에서 tomcat이 아닌 netty 기반으로 실행되게 변경할 수 있다.

  3. @Cacheable
    JCacheManager, ConcurrentMapCacheManager, EhCacheCacheManager 등의 여러 구현체를 사용할 수 있다.

 

참조

  • 스프링 입문을 위한 자바객체지향의 원리와 이해 (책)
profile
꾸준하게

0개의 댓글