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