美文网首页
ssm整合redis

ssm整合redis

作者: 波波大人2018 | 来源:发表于2019-07-15 18:06 被阅读0次

一、service

package com.cy.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.cy.entity.Users;
import com.cy.mapper.UsersMapper;
import com.cy.service.UsersService;
/**
* userService
*
* 缓存机制说明:所有的查询结果都放进了缓存,也就是把MySQL查询的结果放到了redis中去,
* 然后第二次发起该条查询时就可以从redis中去读取查询的结果,从而不与MySQL交互,从而达到优化的效果,
* redis的查询速度之于MySQL的查询速度相当于 内存读写速度 /硬盘读写速度
* @Cacheable("a")注解的意义就是把该方法的查询结果放到redis中去,下一次再发起查询就去redis中去取,存在redis中的数据的key就是a;
* @CacheEvict(value={"a","b"},allEntries=true) 的意思就是执行该方法后要清除redis中key名称为a,b的数据;
*/
@Service("userService")
public class UserServiceImpl implements UsersService{
    @Autowired
    private UsersMapper userMapper;
    @Cacheable("getUsers")
    @Override
    public List<Users> getUsers() {
        return userMapper.getUsers();
    }
}

二、RedisCacheConfig

package com.game.buyu;
import java.lang.reflect.Method;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
/**
* 通过spring管理redis缓存配置
*
* @author Administrator
*
*/
@Configuration 
@EnableCaching
public class RedisCacheConfig extends CachingConfigurerSupport {
    private volatile JedisConnectionFactory jedisConnectionFactory;
    private volatile RedisTemplate<String, String> redisTemplate;
    private volatile RedisCacheManager redisCacheManager;
    public RedisCacheConfig() {
        super();
    }

    /**
    * 带参数的构造方法 初始化所有的成员变量
    *
    * @param jedisConnectionFactory
    * @param redisTemplate
    * @param redisCacheManager
    */
    public RedisCacheConfig(JedisConnectionFactory jedisConnectionFactory, RedisTemplate<String, String> redisTemplate,
            RedisCacheManager redisCacheManager) {
        this.jedisConnectionFactory = jedisConnectionFactory;
        this.redisTemplate = redisTemplate;
        this.redisCacheManager = redisCacheManager;
    }

    public JedisConnectionFactory getJedisConnecionFactory() {
        return jedisConnectionFactory;
    }

    public RedisTemplate<String, String> getRedisTemplate() {
        return redisTemplate;
    }

    public RedisCacheManager getRedisCacheManager() {
        return redisCacheManager;
    }

    @Bean
    public KeyGenerator customKeyGenerator() {
        return new KeyGenerator() {
            @Override
            public Object generate(Object target, Method method, Object... objects) {
                StringBuilder sb = new StringBuilder();
                sb.append(target.getClass().getName());
                sb.append(method.getName());
                for (Object obj : objects) {
                    sb.append(obj.toString());
                }
                return sb.toString();
            }
        };
    }

}

三、xml文件配置

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

<!-- redis config start -->

    <!-- 配置JedisPoolConfig实例 -->

    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">

        <property name="maxIdle" value="300" />

        <property name="maxTotal" value="600" />

        <property name="maxWaitMillis" value="1000" />

        <property name="testOnBorrow" value="true" />

    </bean>

    <!-- 配置JedisConnectionFacory -->

    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">

        <property name="hostName" value="121.196.203.52" />

        <property name="port" value="6379" />

        <property name="password" value="C9BE6E8D-F2CF-4154-BD34-922844BEAC11" />

        <property name="database" value="0" />

        <property name="poolConfig" ref="poolConfig" />

    </bean>

    <!-- 配置redistempLate -->

    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">

        <property name="connectionFactory" ref="jedisConnectionFactory" />

    </bean>

    <!-- 配置RedisCacheManager -->

    <bean id="redisCacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">

        <constructor-arg name="redisOperations" ref="redisTemplate" />

        <property name="defaultExpiration" value="3000" />

    </bean>

    <!-- 配置RedisCacheConfig -->

    <bean id="redisCacheConfig" class="com.game.buyu.RedisCacheConfig">

        <constructor-arg ref="jedisConnectionFactory" />

        <constructor-arg ref="redisTemplate" />

        <constructor-arg ref="redisCacheManager" />

    </bean>

    <!-- redis config end -->

<!-- 开启事务注解驱动 -->

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />

</beans>

maven的配置文件

<!-- redis cache -->

<dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-redis</artifactId>

<version>1.6.0.RELEASE</version>

</dependency>

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.5.1</version>

</dependency>

ssm框架整合redis、spring集成redis

在spring中集成redis很简单,这里用的是ssm框架+maven构建的项目。

首先是需要引入的pom.xml文件:

<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>ssm-maven</groupId>

  <artifactId>ssm-maven</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  <name/>

  <description/>

  <properties> 

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <spring.version>4.2.0.RELEASE</spring.version>

        <!-- mybatis版本号 --> 

        <mybatis.version>3.2.8</mybatis.version> 

        <!-- log4j日志文件管理包版本 --> 

        <slf4j.version>1.7.12</slf4j.version> 

        <log4j.version>1.2.17</log4j.version> 

    </properties> 

    <dependencies> 

        <dependency> 

            <groupId>junit</groupId> 

            <artifactId>junit</artifactId> 

            <version>4.11</version> 

            <scope>test</scope> 

        </dependency> 

        <!-- java ee包 --> 

        <dependency> 

            <groupId>javax</groupId> 

            <artifactId>javaee-api</artifactId> 

            <version>6.0</version> 

        </dependency> 

        <!-- spring框架包 start --> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-test</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-core</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-oxm</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-tx</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-jdbc</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-aop</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-context</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-context-support</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-expression</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-orm</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-web</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-webmvc</artifactId> 

            <version>${spring.version}</version> 

        </dependency> 

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-aspects</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <dependency>

            <groupId>org.aspectj</groupId>

            <artifactId>aspectjweaver</artifactId>

            <version>1.7.2</version>

        </dependency>

        <!-- spring框架包 end --> 

        <!-- mybatis框架包 start --> 

        <dependency> 

            <groupId>org.mybatis</groupId> 

            <artifactId>mybatis</artifactId> 

            <version>${mybatis.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.mybatis</groupId> 

            <artifactId>mybatis-spring</artifactId> 

            <version>1.2.2</version> 

        </dependency> 

        <!-- mybatis框架包 end --> 

        <!-- 数据库驱动 --> 

        <dependency> 

            <groupId>mysql</groupId> 

            <artifactId>mysql-connector-java</artifactId> 

            <version>5.1.35</version> 

        </dependency> 

        <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --> 

        <dependency> 

            <groupId>commons-dbcp</groupId> 

            <artifactId>commons-dbcp</artifactId> 

            <version>1.4</version> 

        </dependency> 

        <!-- jstl标签类 --> 

        <dependency> 

            <groupId>jstl</groupId> 

            <artifactId>jstl</artifactId> 

            <version>1.2</version> 

        </dependency> 

        <!-- log start --> 

        <dependency> 

            <groupId>log4j</groupId> 

            <artifactId>log4j</artifactId> 

            <version>${log4j.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.slf4j</groupId> 

            <artifactId>slf4j-api</artifactId> 

            <version>${slf4j.version}</version> 

        </dependency> 

        <dependency> 

            <groupId>org.slf4j</groupId> 

            <artifactId>slf4j-log4j12</artifactId> 

            <version>${slf4j.version}</version> 

        </dependency> 

        <!-- log END --> 

        <!-- Json --> 

        <!-- 格式化对象,方便输出日志 --> 

        <dependency> 

            <groupId>com.alibaba</groupId> 

            <artifactId>fastjson</artifactId> 

            <version>1.2.6</version> 

        </dependency> 

        <dependency> 

            <groupId>org.codehaus.jackson</groupId> 

            <artifactId>jackson-mapper-asl</artifactId> 

            <version>1.9.13</version> 

        </dependency> 

        <!-- 上传组件包 start --> 

        <dependency> 

            <groupId>commons-fileupload</groupId> 

            <artifactId>commons-fileupload</artifactId> 

            <version>1.3.1</version> 

        </dependency> 

        <dependency> 

            <groupId>commons-io</groupId> 

            <artifactId>commons-io</artifactId> 

            <version>2.4</version> 

        </dependency> 

        <dependency> 

            <groupId>commons-codec</groupId> 

            <artifactId>commons-codec</artifactId> 

            <version>1.10</version> 

        </dependency> 

        <!-- redis cache related.....start -->

        <dependency>

            <groupId>org.springframework.data</groupId>

            <artifactId>spring-data-redis</artifactId>

            <version>1.6.0.RELEASE</version>

        </dependency>

        <dependency>

            <groupId>redis.clients</groupId>

            <artifactId>jedis</artifactId>

            <version>2.7.3</version>

        </dependency>

        <!-- redis cache related.....end -->

    </dependencies> 

  <build>

    <plugins>

      <plugin>

        <artifactId>maven-war-plugin</artifactId>

      </plugin>

      <plugin>

        <artifactId>maven-compiler-plugin</artifactId>

        <configuration>

          <source>1.6</source>

          <target>1.6</target>

        </configuration>

      </plugin>

    </plugins>

  </build>

</project>

项目基本架构:

log4j.properties:

Global logging configuration

log4j.rootLogger=WARN,stdout

Console output...

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L - %m%n

mybatis log

log4j.logger.com.ssm.dao.UserMapper=DEBUG

lyz log

log4j.logger.com.ssm.controller=DEBUG

log4j.logger.com.ssm.service=DEBUG

mybatis_config.xml:

这里面就是一些别名和引入mapper.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration SYSTEM "http://mybatis.org/dtd/mybatis-3-config.dtd" >

<configuration>

    <!-- 别名 -->

    <typeAliases>

        <package name="com.cy.entity"/>

    </typeAliases>

    <mappers>

        <mapper resource="com/cy/entity/UsersMapper.xml"/>

    </mappers>

</configuration>

spring-core.xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans

    xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:p="http://www.springframework.org/schema/p"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context-3.0.xsd

    http://www.springframework.org/schema/tx

    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

    http://www.springframework.org/schema/aop

    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

    <context:component-scan base-package="com.cy.mapper"/>

    <context:component-scan base-package="com.cy.service"/>

    <context:component-scan base-package="com.cy.redis" />

    <!-- 数据源 -->

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

        <property name="driverClassName" value="com.mysql.jdbc.Driver" />

        <property name="url" value="jdbc:mysql://localhost:3306/testdb" />

        <property name="username" value="root" />

        <property name="password" value="ok" />

        <property name="initialSize" value="10" />

        <property name="maxIdle" value="50" />

        <property name="maxWait" value="10000" />

    </bean>

    <bean id="sqlsessionfactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="configLocation" value="classpath:mybatis_config.xml"/>

        <property name="dataSource" ref="dataSource"/>

    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <property name="basePackage" value="com.cy.mapper"/>

        <property name="sqlSessionFactory" ref="sqlsessionfactory"/>

    </bean>

    <!-- transaction

    <tx:annotation-driven transaction-manager="transactionManager" />

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource" />

    </bean> -->

    <!-- redis config start -->

    <!-- 配置JedisPoolConfig实例 -->

    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">

        <property name="maxIdle" value="300" />

        <property name="maxTotal" value="600" />

        <property name="maxWaitMillis" value="1000" />

        <property name="testOnBorrow" value="true" />

    </bean>

    <!-- 配置JedisConnectionFacory -->

    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">

        <property name="hostName" value="192.168.80.210" />

        <property name="port" value="6379" />

        <property name="password" value="redis" />

        <property name="database" value="0" />

        <property name="poolConfig" ref="poolConfig" />

    </bean>

    <!-- 配置redistempLate -->

    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">

        <property name="connectionFactory" ref="jedisConnectionFactory" />

    </bean>

    <!-- 配置RedisCacheManager -->

    <bean id="redisCacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">

        <constructor-arg name="redisOperations" ref="redisTemplate" />

        <property name="defaultExpiration" value="3000" />

    </bean>

    <!-- 配置RedisCacheConfig -->

    <bean id="redisCacheConfig" class="com.cy.redis.RedisCacheConfig">

        <constructor-arg ref="jedisConnectionFactory" />

        <constructor-arg ref="redisTemplate" />

        <constructor-arg ref="redisCacheManager" />

    </bean>

    <!-- redis config end -->

</beans>

spring-mvc:

<?xml version="1.0" encoding="UTF-8"?>

<beans

    xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:p="http://www.springframework.org/schema/p"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context-3.0.xsd

    http://www.springframework.org/schema/mvc

    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <mvc:annotation-driven/>

    <context:component-scan base-package="com.cy.controller"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="prefix" value="/WEB-INF/jsp/"/>

        <property name="suffix" value=".jsp"/>

    </bean>

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

</beans>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  <display-name></display-name>

  <!-- 处理乱码 -->

  <filter>

    <filter-name>characterEncoding</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <init-param>

        <param-name>encoding</param-name>

        <param-value>UTF-8</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>characterEncoding</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

spring 配置文件

  <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath:spring-core.xml</param-value>

  </context-param>

  <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

mvc配置文件

  <servlet>

    <servlet-name>mvc</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:spring-mvc.xml</param-value>

    </init-param>

  </servlet>

  <servlet-mapping>

    <servlet-name>mvc</servlet-name>

    <url-pattern>/</url-pattern>

    </servlet-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

实体类User:

package com.cy.entity;

import java.io.Serializable;

public class Users implements Serializable{

    /**

    *

    */

    private static final long serialVersionUID = 1L;

    private Integer id;

    private String name;

    public Integer getId() {

        return id;

    }

    public void setId(Integer id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

}

映射文件UserMapper.xml,和实体类在一个包内

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="com.cy.mapper.UsersMapper">

    <select id="getUsers" resultType="Users">

        SELECT id,`name` FROM users

    </select> 

</mapper>

UserMapper.java

package com.cy.mapper;

import java.util.List;

import com.cy.entity.Users;

public interface UsersMapper {

    public List<Users> getUsers();

}

UserService接口:

package com.cy.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.cache.annotation.Cacheable;

import org.springframework.stereotype.Service;

import com.cy.entity.Users;

import com.cy.mapper.UsersMapper;

import com.cy.service.UsersService;

/**

* userService

*

* 缓存机制说明:所有的查询结果都放进了缓存,也就是把MySQL查询的结果放到了redis中去,

* 然后第二次发起该条查询时就可以从redis中去读取查询的结果,从而不与MySQL交互,从而达到优化的效果,

* redis的查询速度之于MySQL的查询速度相当于 内存读写速度 /硬盘读写速度

* @Cacheable("a")注解的意义就是把该方法的查询结果放到redis中去,下一次再发起查询就去redis中去取,存在redis中的数据的key就是a;

* @CacheEvict(value={"a","b"},allEntries=true) 的意思就是执行该方法后要清除redis中key名称为a,b的数据;

*/

@Service("userService")

public class UserServiceImpl implements UsersService{

    @Autowired

    private UsersMapper userMapper;

    @Cacheable("getUsers")

    @Override

    public List<Users> getUsers() {

        return userMapper.getUsers();

    }

}

缓存主要在service层进行,查询的结果会缓存,把对象序列号存到redis中去,key就是注解中的参数,例如@Cacheable(“findUsers”): 存在redis中的key就是findUsers。缓存了这个结果之后再次请求这个方法就不会去数据库中查,而是从redis缓存中读取数据,这样就减少了跟数据库之间的交互。然后修改、删除、增加操作就会清除缓存,保持数据的一致性。

RedisCacheConfig: 需要增加这个配置类,会在applicationContex配置文件中注册这个bean。

package com.cy.redis;

import java.lang.reflect.Method;

import org.springframework.cache.annotation.CachingConfigurerSupport;

import org.springframework.cache.annotation.EnableCaching;

import org.springframework.cache.interceptor.KeyGenerator;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.cache.RedisCacheManager;

import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

import org.springframework.data.redis.core.RedisTemplate;

/**

* 通过spring管理redis缓存配置

*

* @author Administrator

*

*/

@Configuration 

@EnableCaching

public class RedisCacheConfig extends CachingConfigurerSupport {

    private volatile JedisConnectionFactory jedisConnectionFactory;

    private volatile RedisTemplate<String, String> redisTemplate;

    private volatile RedisCacheManager redisCacheManager;

    public RedisCacheConfig() {

        super();

    }

    /**

    * 带参数的构造方法 初始化所有的成员变量

    *

    * @param jedisConnectionFactory

    * @param redisTemplate

    * @param redisCacheManager

    */

    public RedisCacheConfig(JedisConnectionFactory jedisConnectionFactory, RedisTemplate<String, String> redisTemplate,

            RedisCacheManager redisCacheManager) {

        this.jedisConnectionFactory = jedisConnectionFactory;

        this.redisTemplate = redisTemplate;

        this.redisCacheManager = redisCacheManager;

    }

    public JedisConnectionFactory getJedisConnecionFactory() {

        return jedisConnectionFactory;

    }

    public RedisTemplate<String, String> getRedisTemplate() {

        return redisTemplate;

    }

    public RedisCacheManager getRedisCacheManager() {

        return redisCacheManager;

    }

    @Bean

    public KeyGenerator customKeyGenerator() {

        return new KeyGenerator() {

            @Override

            public Object generate(Object target, Method method, Object... objects) {

                StringBuilder sb = new StringBuilder();

                sb.append(target.getClass().getName());

                sb.append(method.getName());

                for (Object obj : objects) {

                    sb.append(obj.toString());

                }

                return sb.toString();

            }

        };

    }

}

相关文章

  • SpringBoot整合Redis

    其实之前维护SSM项目的时候开发秒杀引入redis也有在网上翻天覆地的找整合的法子,Maven整合SSM和Redi...

  • ssm整合redis

    一、service 二、RedisCacheConfig 三、xml文件配置 maven的配置文件 ssm框架整合...

  • SSM整合Redis

    1.新建redis.properties 在classpath下创建redis.properties,内容如下: ...

  • SSM框架整合Redis做MyBatis二级缓存

    参考博文:3-SSM框架整合Redis做MyBatis二级缓存

  • ssm+redis 整合

    1:准备好 Redis 服务器,这里就不详细介绍了, 可以百度 windows 下如何安装 redis 服务器。 ...

  • SSM之整合Redis

    Redis安装与使用 第一步当然是安装Redis,这里以Windows上的安装为例。 首先下载Redis,可以选择...

  • 整合SSM

    SSM整合 整合思路 各自搭建SSM环境 使用Spring整合Mybatis 使用Spring整合SpringMV...

  • 12|第十二课:SSM整合

    一、SSM整合 SSM整合: Spring --- SpringMVC --- MyBatis (一)、Sprin...

  • mybatis整合redis缓存

    最近闲来无事开始学习缓存技术,首当其冲的就是接触到redis,多的不说,直接借着现有ssm框架整合redis进去,...

  • SpringMVC框架学习1:SSM 整合开发、SpringMV

    SSM 整合开发 SSM 编程,即 SpringMVC + Spring + MyBatis 整合,是当前最为流行...

网友评论

      本文标题:ssm整合redis

      本文链接:https://www.haomeiwen.com/subject/yqrokctx.html