springboot整合redis(含源码)

本文详细介绍了如何在SpringBoot项目中整合Redis,通过注解实现缓存,并强调了User对象实现Serializable接口的重要性,以及在RedisConfig配置中正确设置key和value序列化方式以避免数据乱码的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot整合redis

提前准备

sql文件和源码地址:git clone https://gitee.com/xinhe66/springboot-redis.git

项目列表

项目流程

文章目录:

一.Pom文件导入依赖
二.配置application.properties文件
三.新建一个User对象
四.server层内容
五.controller层内容
六.mapper层内容
七.RedisConfig配置
八.简单测试
九.总结

一.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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sc</groupId>
    <artifactId>testRedis</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>
        <!-- 添加MyBatis依赖 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>1.5.18.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.24</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0-jre</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.18</version>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <!-- 此配置不可缺,否则mybatis的Mapper.xml将会丢失 -->
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <!--指定资源的位置-->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <
### Spring Boot Redis 整合源码实现与教程 Spring Boot 提供了对 Redis 的自动配置支持,这使得开发者可以轻松地将 Redis 集成到 Spring Boot 应用程序中。以下是对 Spring Boot 和 Redis 整合的详细说明,包括源码实现和相关教程。 #### 1. Spring Boot Redis 自动配置机制 Spring Boot 使用 `spring-boot-autoconfigure` 模块中的 `RedisAutoConfiguration` 来实现 Redis 的自动配置[^1]。该类通过条件注解(如 `@ConditionalOnClass` 和 `@ConditionalOnMissingBean`)来判断是否需要加载 Redis 相关的 Bean。 ```java @Configuration @ConditionalOnClass(RedisOperations.class) @ConditionalOnMissingBean(RedisOperations.class) @EnableConfigurationProperties(RedisProperties.class) public class RedisAutoConfiguration { @Bean @ConditionalOnMissingBean(name = "redisTemplate") public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<Object, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); return template; } } ``` 上述代码片段展示了如何通过 `RedisConnectionFactory` 创建 `RedisTemplate`,这是与 Redis 进行交互的核心组件[^1]。 #### 2. 配置文件设置 在 Spring Boot 中,可以通过 `application.properties` 或 `application.yml` 文件配置 Redis 的连接信息[^4]。以下是 `application.yml` 的示例: ```yaml spring: redis: host: localhost port: 6379 password: timeout: 5000ms lettuce: pool: max-active: 8 max-idle: 8 min-idle: 0 ``` 上述配置定义了 Redis 的主机、端口、密码、超时时间以及连接池的参数[^4]。 #### 3. 使用 RedisTemplate 进行操作 `RedisTemplate` 是 Spring Data Redis 提供的一个模板类,用于执行 Redis 操作。以下是一个简单的使用示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @Service public class RedisService { @Autowired private RedisTemplate<String, String> redisTemplate; public void setValue(String key, String value) { redisTemplate.opsForValue().set(key, value); } public String getValue(String key) { return redisTemplate.opsForValue().get(key); } } ``` 这段代码展示了如何通过 `RedisTemplate` 设置和获取 Redis 中的键值对[^1]。 #### 4. 可执行 JAR 文件的 MANIFEST.MF 当将 Spring Boot 应用程序打包为可执行 JAR 文件时,MANIFEST.MF 文件会包启动类的相关信息[^3]。例如: ``` Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.mycompany.project.MyApplication ``` #### 5. 多环境配置 如果需要为不同的环境(如开发、测试、生产)配置 Redis 参数,可以使用多环境配置文件[^2]。例如,在 `application.yml` 中: ```yaml spring: profiles: dev redis: host: dev-redis-host port: 6379 --- spring: profiles: prod redis: host: prod-redis-host port: 6379 ``` ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值