• cannot be found on object of type xx.CacheExpressionRootObject


    0 环境

    系统环境:win10
    编辑器:IDEA

    1 前言->环境搭建

    1-1 pom依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.8.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>org.javaboy</groupId>
        <artifactId>chapter09-cacheredis</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>chapter09-cacheredis</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-cache</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    1-2 properties(redis的基本配置以及缓存名的配置)

    spring.redis.host=127.0.0.1
    spring.redis.password=123456
    spring.redis.port=6379
    spring.redis.database=0
    
    spring.cache.cache-names=c1

    1-3 Application启动项添加

    1-4 自定义KeyGenerator

    @Component
    public class MyKeyGen implements KeyGenerator {
    
        @Override
        public Object generate(Object o, Method method, Object... objects) {
            return method.getName()+":"+ Arrays.toString(objects);
        }

    1-5 service层

    @Service
    //@CacheConfig(cacheNames = "c1")
    public class BookService {
    //    key = "#methodName"
    //    key = "#method.name"
    //    key = "#caches[0]"
    //    key = "#args[0]"
    //    @Cacheable(cacheNames = "c1",key = "#caches[0]")
        @Cacheable(cacheNames = "c1",key = "'myKeyGen'")
        public Book getUserById(Integer id){
            System.out.println("book>>>>>>" + id);
            Book book = new Book();
            book.setId(id);
            return book;
        }
    
    }

    1-6 单元测试

        @Autowired
        BookService bookService;
    
        @Test
        public void contextLoads() {
    
            Book book = bookService.getUserById(1);
            Book book1 = bookService.getUserById(1);
            System.err.println("book --->>" + book);
            System.err.println("book1 --->>" + book1);
    
        }

    2 报错

    key = "''" (需要内嵌一下单引号 不然会报错)
    作者:以罗伊
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    ios风场
    ios avplayer 视频播放器
    iOS 微信支付
    ios 支付宝
    IOS 归档
    ios 友盟统计
    iOS OC部分 NSString
    ios 程序员
    Ios 一个很好用的图片选择器
    mac系统U盘装机 一个被系统坑过的路人
  • 原文地址:https://www.cnblogs.com/my-ordinary/p/11564114.html
Copyright © 2020-2023  润新知