: 세부 기술에 특화된 코드가 변경되더라도 일관된 방식으로 접근할 수 있게 해주는 추상화 기법
@Controller
, @RequestMapping
등의 애노테이션을 사용하면 Servlet 기반의 프로그래밍을 지원한다.트랜잭션을 처리하는 구현체가 변경되더라도 @Transactional
애노테이션을 변경할 필요없이 PlatformTransactionManager
인터페이스의 세부 기술에 해당하는 JpaTransactionManager, HibernateTransactionManager, DataSourceTransactionManager 등의 구현체로 자유롭게 변경할 수 있다.
캐시를 다루는 @Cacheable
, @CacheEvict
등의 애노테이션을 변경할 필요없이 CacheManager
인터페이스의 세부 기술에 해당하는 JCacheManager, ConcurrentCacheManager, EhCacheCacheManager 등의 구현체로 자유롭게 변경할 수 있다.