Springboot以Repository方式整合Redis

2.2 引入相关依赖
我们引入Springboot Web的依赖,以启动REST服务。还需要引入Spring Data Redis相关的依赖。最后,还需要commons-pool2,不然会因为缺少类而无法启动。

org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-redis org.apache.commons commons-pool2 2.3 配置连接信息 配置Redis的连接信息,这个信息跟你安装时的配置有关,同时配置了连接池,各项的配置及相关解释如下:

Redis数据库索引,默认为0

spring.redis.database=0

Redis端口

spring.redis.port=6379

Redis服务器主机

spring.redis.host=localhost

连接池最大连接数

spring.redis.lettuce.pool.max-active=8

连接池最大空闲

spring.redis.lettuce.pool.max-idle=8

连接池最小空闲

spring.redis.lettuce.pool.min-idle=2

连接池最大阻塞等待时间

spring.redis.lettuce.pool.max-wait=1ms

超时时间

spring.redis.lettuce.shutdown-timeout=100ms
2.4 创建实体类
存入Redis中的数据类型,可以是自定义的一个类,注意需要加上注解@RedisHash和@Id。存入Redis的数据为Set类型。

具体代码如下:

package com.pkslow.redis.model;

import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
import java.util.Date;

@RedisHash(“User”)
public class User {
@Id
private String userId;
private String name;
private Integer age;
private Date createTime = new Date();

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}

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;
}

public Date getCreateTime() {
    return createTime;
}

public void setCreateTime(Date createTime) {
    this.createTime = createTime;
}

}
2.5 数据库访问层UserRepository接口
直接继承CrudRepository接口就行了,不用自己来实现,需要注意CrudRepository<User, String>的泛型类型:

package com.pkslow.redis.dal;

import com.pkslow.redis.model.User;
import org.springframework.data.repository.CrudRepository;

public interface UserRepository extends CrudRepository<User, String> {
}
2.6 实现Controller
Controller实现了RESTful风格的增删改查功能,只要把UserRepository注入便可以使用它来操作:

package com.pkslow.redis.controller;

import com.pkslow.redis.dal.UserRepository;
import com.pkslow.redis.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private final UserRepository userRepository;

public UserController(UserRepository userRepository) {
    this.userRepository = userRepository;
}

@GetMapping("")
public Iterable<User> getAllUsers() {
    return userRepository.findAll();
}

@GetMapping("/{userId}")
public User getByUserId(@PathVariable String userId) {
    return userRepository.findById(userId).orElse(new User());
}

@PostMapping("")
public User addNewUser(@RequestBody User user) {
    return userRepository.save(user);
}

@DeleteMapping("/{userId}")
public String delete(@PathVariable String userId) {
    User user = new User();
    user.setUserId(userId);
    userRepository.deleteById(userId);
    return "deleted: " + userId;
}

@PutMapping("")
public User update(@RequestBody User user) {
    return userRepository.save(user);
}

}
亚马逊测评www.yisuping.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值