spring cache不生效问题

最近数据库访问量太大,于是加了缓存
同样的缓存配置,有一个工程缓存正常生效,但另一个工程里却不生效

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
            <version>2.7.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
            <version>3.1.8</version>
        </dependency>

@Configuration
@EnableCaching
public class CacheConfig {

    @Bean
    public CacheManager cacheManager() {
        CaffeineCacheManager caffeineCacheManager = new CaffeineCacheManager();
        caffeineCacheManager.setCaffeine(Caffeine.newBuilder()
                .initialCapacity(1000)
                .maximumSize(100000)
                .expireAfterWrite(5, TimeUnit.MINUTES));

        return caffeineCacheManager;
    }
}

在org.springframework.cache.interceptor类里加断点,发现没进去,说明拦截器都没生效
最后查资料找到原因:
Spring 使用 AOP 来实现缓存功能,因此需要确保方法调用是通过代理进行的。如果方法是在同一个类内部调用的,那么 AOP 代理不会生效。你可以将方法调用移到另一个服务类中,或者使用 @EnableAspectJAutoProxy(proxyTargetClass = true) 启用基于类的代理

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容