2017-04-09 5 views
1

스프링 부트 1.5.2 앱을 실행 중입니다. 내 서비스 메서드에 캐싱을 추가하려고했습니다. spring-boot-startter-cache 메이븐 종속성을 추가했으며 @ Cacheable 주석을 사용하고 있지만 영향을 미치지 않습니다. @ Configuration 클래스에서 서비스 bean을 만들었습니다 - 여기 예를 들어 여기에스프링 부트 캐시 시작 안 함

@Bean(name = "policyService") 
public IPolicyService policyService() { 
    policyService = new PolicyServiceImpl(); 
    return policyService; 
} 

@Repository 
public interface PolicyRepository extends CrudRepository<PolicyDBO, Long>{ 

    /** Find policy by id **/ 
    PolicyDBO findById(Long policyId); 
} 
다음과 같이

@Cacheable(value="policiesCache") 
    public List<PolicyDBO> findAllPolicies() { 
     LOG.info("Entered findAllPolicies"); 

     List<PolicyDBO> policyList = policyRespoitory.findAll(); 

     LOG.info("Exiting findAllPolicies"); 
     return policyList; 
    } 

내 repoistory 인터페이스 방법은 내 서비스 방법의 예입니다 나는 RestController에서이 서비스 메서드를 호출 할 때마다

- 캐시가 트리거되지 않습니다 - 그것은 설치가 내가 제대로 설치 캐싱을 얻기 위해 무엇을 할 수 있는지 제대로

어떤 아이디어가없는 것 같습니다? 캐싱을 가정

덕분에 데미안

답변

1

봄 캐싱하지만 예상대로 제대로을 작동하고, 활성화됩니다. @Cacheable은 결과에 대해 캐시 옵션을 사용합니다.

귀하의 경우 캐시는 no arguments이고 결과는 List<PolicyDBO>입니다.

그러나 findById을 호출하면 캐시가 Long의 인수와 일치하지 않으므로 캐시 된 결과를 반환하지 않습니다.