无法自动装配。找不到 'Jedis' 类型的 Bean
时间: 2023-12-25 10:50:38 浏览: 44
这个错误通常是因为在 Spring 容器中没有配置 Jedis 类型的 Bean。你需要在 Spring 的配置文件中添加 Jedis 的 Bean。
具体步骤如下:
1. 导入 jedis 的依赖包,可以在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.1</version>
</dependency>
```
2. 在 Spring 的配置文件中添加 Jedis 的 Bean,示例如下:
```xml
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="100" />
<property name="maxIdle" value="10" />
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg ref="jedisPoolConfig" />
<constructor-arg value="localhost" />
<constructor-arg value="6379" />
</bean>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory" />
</bean>
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="pool" ref="jedisPool" />
</bean>
```
这里我们配置了 JedisPoolConfig、JedisPool、RedisTemplate 和 JedisConnectionFactory 这 4 个 Bean,其中 JedisPoolConfig 和 JedisPool 是 jedis 的连接池配置,RedisTemplate 和 JedisConnectionFactory 是 Spring 对 jedis 的封装。
3. 在代码中使用 Jedis,示例如下:
```java
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void set(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public Object get(String key) {
return redisTemplate.opsForValue().get(key);
}
```
这里我们使用了 RedisTemplate 对象来操作 redis,通过 Spring 的自动装配机制将 RedisTemplate 注入到类中,然后就可以使用 RedisTemplate 对象来操作 redis 了。