0
doFilter에서 호출하면 스프링 캐쉬가 작동하지 않습니다.스프링 캐쉬가 doFilter에서 작동하지 않습니다.
하는 것으로 봄 캐시 doFilter에서 호출하지 않으면 작동하고() (예를 들어, 나머지 서비스에서 호출하는 경우)
어떻게 doFilter에서 캐시를 활성화 할 수 있습니다()? (아마도 캐시가 doFilter에서 허용되지 않습니다?)
@Configuration
@EnableCaching
public class CredentialsInjectionFilter implements javax.servlet.Filter {
@Bean
public CacheManager cacheManager() {
SimpleCacheManager cacheManager = new SimpleCacheManager();
cacheManager.setCaches(Arrays.asList(
new ConcurrentMapCache("tenants")
));
return cacheManager;
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
display(5);
filterChain.doFilter(servletRequest, servletResponse);
}
@Cacheable("tenants")
public void display(int number) {
// if cache working properly, code below will not execute after the first calling
for(int i=0; i<50; i++) {
System.out.println("ramon called" +number);
}
}
아무 것도 반환하지 않는 메소드에 @Cacheable을 적용하고 있습니다 (void 반환 유형). 이 시나리오에서 어떤 일이 발생할 것으로 예상합니까? – Jigish