报错的代码
package com.yangjunbo.JPADemo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
public class TestRedisTemplate {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testString() {
// 调用set()方法创建缓存
redisTemplate.opsForValue().set("hello:redis", "hello spring boot");
System.out.println("hello redis: "+ redisTemplate.opsForValue().get("hello:redis"));
}
}
正确的代码
package com.yangjunbo.JPADemo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestRedisTemplate {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testString() {
// 调用set()方法创建缓存
redisTemplate.opsForValue().set("hello:redis", "hello spring boot");
System.out.println("hello redis: "+ redisTemplate.opsForValue().get("hello:redis"));
}
}
原因
类名上方没有加@RunWith(SpringRunner.class)注解,导致redisTemplate没有进入spring容器管理
接下来讲下springboot集成redis的步骤
1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.配置
# Redis 数据库(默认为 0)
spring.redis.database=0
# Redis 服务器地址
spring.redis.host=127.0.0.1
# Redis 服务器连接端口
spring.redis.port=6379
# Redis 服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制),默认为8
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制),默认为-1
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接,默认为10
spring.redis.jedis.pool.max-idle=10
# 连接池中的最小空闲连接,默认为0
spring.redis.jedis.pool.min-idle=2
# 超时时间
spring.redis.timeout=6000