一,首先在idea中的pom.xml文件中引入配置类
具体如下:
<properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.7.1</spring-boot.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- Lettuce连接池 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <!-- hutool --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <!--排除swagger2的annotations和models依赖,然后再引入1.5.21版本的annotations和models依赖--> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </exclusion> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <!--引入1.5.21版本的annotations和models依赖--> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.21</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.21</version> </dependency> <!--knife4j(swagger) --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.4</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </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> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <mainClass>com.igeek.boot.Boot4DataRedisApplication</mainClass> <skip>true</skip> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 为了方便测试引入swagger2依赖
其中要做好swagger的config配置类
二,开始写入redis的配置类
写redis的配置类
1.要学会参考maven中的文件编写适合自己需求的文件,要参考:Maven:org.springframework.boot:spring-boot-autoconfigure:2.7.1\spring-boot-autoconfigure-2.7.1.jar!\META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
2.在其中ctrl+f 查找
RedisAutoConfiguration
ctrl+n 进入
RedisAutoConfiguration
在@EnableConfigurationProperties(RedisProperties.class)中进入RedisProperties,注意还要配置application.properties文件,可以在RedisProperties中查看参数,来配置redis
参考样例如下:(其中包含swagger,数据库等)
#------------ redis ---------# spring.redis.host=8.130.125.162 spring.redis.port=6333 spring.redis.password=123456 #spring.redis.password=7403Mmy! spring.redis.database=0 spring.redis.timeout=18000 #spring.redis.client-type=jedis spring.redis.lettuce.pool.enabled=true spring.redis.lettuce.pool.max-active=20 spring.redis.lettuce.pool.max-idle=10 spring.redis.lettuce.pool.min-idle=3 spring.redis.lettuce.pool.max-wait=-1 #------------- Swagger2 ---------- spring.swagger2.enabled=true spring.mvc.pathmatch.matching-strategy=ant_path_matcher logging.level.root=info logging.level.com.igeek.boot.controller=debug logging.file.name=./boot/boot_4_data_redis.log logging.charset.file=UTF-8
3.通过RedisAutoConfiguration中
@ConditionalOnMissingBean(name = "redisTemplate")得知需要创建自己的
redisTemplate在结合
原有的stringRedisTemplate以及redisTemplate
复制
RedisTemplate<Object, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); return template;
进入stringRedisTemplate复制
this.setKeySerializer(RedisSerializer.string()); this.setValueSerializer(RedisSerializer.string()); this.setHashKeySerializer(RedisSerializer.string()); this.setHashValueSerializer(RedisSerializer.string());
this(); this.setConnectionFactory(connectionFactory); this.afterPropertiesSet();
全部写入有关RedisSerializer.string()怎么重写点击RedisSerializer.string()中.string()进入
可以看见
static RedisSerializer<String> string() { return StringRedisSerializer.UTF_8; }
可知需要StringRedisSerializer
4.再在其中找到
5.参考如下
package com.igeek.boot.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; /** * TODO * * @author xuxin * @since 2024/7/11 */ @Configuration(proxyBeanMethods = false) public class RedisConfig { @Bean public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){ RedisTemplate<String, Object> stringTemplate = new RedisTemplate<>(); stringTemplate.setConnectionFactory(redisConnectionFactory); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(); // this(); stringTemplate.setKeySerializer(stringRedisSerializer); stringTemplate.setValueSerializer(genericJackson2JsonRedisSerializer); stringTemplate.setHashKeySerializer(stringRedisSerializer); stringTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer); stringTemplate.setConnectionFactory(redisConnectionFactory); stringTemplate.afterPropertiesSet(); return stringTemplate; } } 三,写入相应的controller,entity,service之后开始运行