当前位置 主页 > 网站技术 > 代码类 >

    Spring Boot 2和Redis例子实现过程解析

    栏目:代码类 时间:2019-11-16 21:07

    这篇文章主要介绍了Spring Boot2发布与调用REST服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Redis是一个key-value数据库,支持存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。在Java中,使用较为广泛的客户端有Redisson、Jedis。Spring Data Redis模块默认使用Jedis。

    开发环境:IntelliJ IDEA 2019.2.2

    Spring Boot版本:2.1.8

    一、项目构建

    1、新建一个名称为demo的Spring Boot项目。

    2、pom.xml

    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</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-test</artifactId>
          <scope>test</scope>
        </dependency>
    
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
        </dependency>

    3、application.yml

    配置Redis的相关属性。

    spring:
     redis:
      port: 6379
      password: 123456
      host: localhost

    二、实体类

    1、User.java

    映射Redis的数据:

    (1) 类使用@RedisHash注解表示User对象会以hash类型保存;

    (2) 字段id使用@Id注解表示自动生成guid;

    (3) 字段使用@Indexed表示建立索引,在方法名查询时需要设置此注解;

    package com.example.demo.entity;
    
    import org.springframework.data.annotation.Id;
    import org.springframework.data.redis.core.RedisHash;
    import org.springframework.data.redis.core.index.Indexed;
    
    
    @RedisHash("user")
    public class User {
      @Id
      private String id;
      @Indexed
      private String name;
      @Indexed
      private Integer age;
    
      public String getId() {
        return id;
      }
    
      public void setId(String id) {
        this.id = id;
      }
    
      public String getName() {
        return name;
      }
    
      public void setName(String name) {
        this.name = name;
      }
    
      public Integer getAge() {
        return age;
      }
    
      public void setAge(Integer age) {
        this.age = age;
      }
    }

    三、数据访问层

    1、数据访问层 UserRepository.java

    继承CrudRepository可以不需要任何实现,拥有基本的CRUD操作。也可以手动添加代码实现方法名查询。

    package com.example.demo.repository;
    
    import com.example.demo.entity.User;
    import org.springframework.data.repository.CrudRepository;
    
    import java.util.List;
    
    public interface UserRepository extends CrudRepository<User,String> {
    
      //方法名查询:根据字段name查询
      List<User> findByName(String name);
    
      //方法名查询:根据字段name和age的And查询
      List<User> findByNameAndAge(String name, Integer age);
    
      //方法名查询:根据字段name和age的Or查询
      List<User> findByNameOrAge(String name, Integer age);
    }