在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能。
具体步骤如下:
- 添加 Redis 依赖
在 Maven 项目的 pom.xml 文件中添加 Redis 的相关依赖。例如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 创建 Redis 配置文件
在 resources 目录下新建一个 spring-redis.xml 文件,并在其中配置 Redis 的相关信息,例如服务器地址、端口号等。
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 连接池最大连接数 -->
<property name="maxTotal" value="30"/>
<!-- 连接池最大空闲连接数 -->
<property name="maxIdle" value="8"/>
<!-- 连接池最大等待连接中的时间 -->
<property name="maxWaitMillis" value="30000"/>
<!-- 连接超时时间 -->
<property name="timeout" value="30000"/>
</bean>
<bean id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<!-- 设置 redis 地址 -->
<property name="hostName" value="${spring.redis.host}"/>
<!-- 设置 redis 端口 -->
<property name="port" value="${spring.redis.port}"/>
<!-- 设置数据库索引,默认为0 -->
<property name="database" value="${spring.redis.database}"/>
<!-- 使用连接池 -->
<property name="poolConfig" ref="jedisPoolConfig"/>
</bean>
<bean id="stringRedisTemplate"
class="org.springframework.data.redis.core.StringRedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"/>
</bean>
- 配置 Redis 缓存
在需要使用 Redis 缓存的地方,可以通过注解来开启缓存功能。例如,在 Service 层中,可以使用 @Cacheable
注解来标记需要缓存的方法,如:
@Service
public class UserService {
@Cacheable(value = "users", key = "#id")
public User getUser(String id) {
// ...
}
}
在这里,@Cacheable
注解有两个参数:
value
参数指定了缓存的名字,这里我们将其命名为 users。key
参数指定了生成缓存 key 的方式。这里我们将参数 id 作为 key。
- 启动 Redis 缓存
最后,在 SpringBoot 的主配置类中,通过 @EnableCaching
注解来启用 Redis 缓存功能,如:
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这样就可以在 SSM 架构中使用 Spring 注解式缓存来实现 Redis 功能了。