ssm整合redis(测试可用)

这是在已经建好ssm框架的前提下整合的redsi,首先先发一下目录图:

第一步 在pom.xml里面添加jar 

	<!-- spring-redis实现 -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
			<version>1.6.2.RELEASE</version>
		</dependency>
		<!-- redis客户端jar -->
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.8.0</version>
		</dependency>
		<!-- Ehcache实现,用于参考 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-ehcache</artifactId>
			<version>1.0.0</version>
		</dependency>

第二步:先在resources下建立一个reids的配置文件名为:redis.properties

#redis  一下配置的 ip和端口还有密码都是我redis服务器的 要换成你们自己的
#redis服务器ip  这是你的redsi服务器的ip
redis.host = 192.168.8.211
#redis服务器端口号 你的redis服务器的端口号
redis.port = 6379
#redis密码  没有设置密码的话可以不用此属性
redis.pass = 123456
#与服务器建立连接的超时时间
redis.timeout=3000
#jedis最大空闲连接数
redis.maxIdle = 5
redis.maxActive = 1024
#jedis池没有连接对象返回时,等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。
#如果超过等待时间,则直接抛出JedisConnectionException
redis.maxWait = 10000
#jedis的最大活跃连接数
redis.maxTotal=6000
redis.testOnBorrow = true
#设置选择reids的某个db  默认为0 可以不加此配置
redis.db=0

第三步  修改 spring-mybatis.xml文件 我再这里贴上我这个文件的全部代码 可以看着修改一下 或者直接复制过去 然后修改一下扫描的路径 比如开始的扫描路径和下面的mapper.xml的扫描路径还有dao层扫描路径

<?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.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
    <!-- 自动扫描  此处换成你自己的 下面还有两处-->  
    <context:component-scan base-package="com.software" />
    
    <!-- 引入配置文件 -->  
    <bean id="propertyConfigurer"  
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
       <!--  <property name="location" value="classpath:jdbc.properties" />   -->
        <property name="locations">
	        <list>
	        	<value>classpath:jdbc.properties</value>
	        	<value>classpath:redis.properties</value>
	        </list>
        </property>  
    </bean>  
    
  <!-- 配置数据源 class="com.alibaba.druid.pool.DruidDataSource"-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
        destroy-method="close">  
        <property name="driverClassName" value="${driver}" />  
        <property name="url" value="${url}" />  
        <property name="username" value="${username}" />  
        <property name="password" value="${password}" />  
        <!-- 初始化连接大小 -->  
        <property name="initialSize" value="${initialSize}"></property>  
        <!-- 连接池最大数量 -->  
        <property name="maxActive" value="${maxActive}"></property>  
        <!-- 连接池最大空闲 -->  
        <property name="maxIdle" value="${maxIdle}"></property>  
        <!-- 连接池最小空闲 -->  
        <property name="minIdle" value="${minIdle}"></property>  
        <!-- 获取连接最大等待时间 -->  
        <property name="maxWait" value="${maxWait}"></property>  
    </bean>  
  
    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <!-- 自动扫描mapping.xml文件  此处也换成你自己的  下面还有一处-->  
        <property name="mapperLocations" value="classpath:com/software/mapping/*.xml"></property> 
        <!-- 开启缓存支持 -->
         <property name="configurationProperties">
            <props>
                    <!-- 开启关键-->
                <prop key="cacheEnabled">true</prop>
                <!-- 查询时,关闭关联对象即时加载以提高性能 -->
                <prop key="lazyLoadingEnabled">false</prop>
                <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能 -->
                <prop key="aggressiveLazyLoading">true</prop>
                <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
                <prop key="multipleResultSetsEnabled">true</prop>
                <!-- 允许使用列标签代替列名 -->
                <prop key="useColumnLabel">true</prop>
                <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
                <prop key="useGeneratedKeys">true</prop>
                <!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
                <prop key="autoMappingBehavior">FULL</prop>
                <!-- 对于批量更新操作缓存SQL以提高性能 -->
                <prop key="defaultExecutorType">BATCH</prop>
                <!-- 数据库超过25000秒仍未响应则超时 -->
                <prop key="defaultStatementTimeout">25000</prop>
            </props>
        </property> 
    </bean>  
  
    <!-- DAO接口所在包名,Spring会自动查找其下的类 这里也换成你自己的 这是第三处-->  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.software.dao" />  
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
    </bean>  
  
    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
    <bean id="transactionManager"  
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource" />  
    </bean>  
    
     <!--设置连接池--> 
     <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> 
	      <property name="maxIdle" value="${redis.maxIdle}"/>
	      <property name="maxTotal" value="${redis.maxTotal}" /> 
	      <property name="maxWaitMillis" value="${redis.maxWait}" /> 
	      <property name="testOnBorrow" value="${redis.testOnBorrow}" /> 
	      <!-- <property name="testOnReturn" value="${redis.testOnReturn}" />  -->
     </bean> 
     <!--设置链接属性 p:database="${redis.db}" 这一个注解为设置选择某个reids的dp,可以不加 默认选择第0个--> 
     <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" 
     p:hostName="${redis.host}" 
     p:port="${redis.port}" 
     p:password="${redis.pass}" 
     p:database="${redis.db}"
     p:pool-config-ref="poolConfig" 
     p:timeout="100000"/>
     <!-- Jedis模板配置 -->
     <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> 
     	<property name="connectionFactory" ref="connectionFactory" /> 
     </bean>

  
</beans>  

最后我在贴一下我的jdbc.properties的代码 方便你们与 spring-mybatis.xml里面的代码最对比

driver=com.mysql.jdbc.Driver
#本地
url=jdbc:mysql://localhost:3306/caesar?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
username=root
password=root
#定义初始连接数  
initialSize=0
#定义最大连接数  
maxActive=20
#定义最大空闲  
maxIdle=20
#定义最小空闲  
minIdle=1
#定义最长等待时间  
maxWait=60000

最后一步 进行测试 我贴两个代码 一个是使用junit进行测试的代码 一个是在controlelr里面测试的 是为了方便没有配置junit的朋友测试的 先贴junit的测试代码

首先在src/test/java下面建一个测试类

package software;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.alibaba.fastjson.JSON;
import com.software.entity.User;
import com.software.serivce.TestService;
/**
 * 测试类
 * @author 史**
 *
 * 2019年1月30日
 */
@RunWith(SpringJUnit4ClassRunner.class)     //表示继承了SpringJUnit4ClassRunner类  
@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})  
public class TestMyBatis {
        //日志 如果没有的可以不加
	    private static Logger logger = Logger.getLogger(TestMyBatis.class);   

	    @Resource
	    private RedisTemplate redisTemplate;
	    @Test  
	    public void test1() {  
	        //先给redis里面赋值
	        redisTemplate.opsForValue().set("chen", "测试redis");
            //在日志里打印 从reids里取出的数据
	        logger.info("value:"+redisTemplate.opsForValue().get("chen"));
	       //在控制台打印从reids里取出的数据
	        System.out.println("完毕"+redisTemplate.opsForValue().get("chen"));
	    }  
}

然后在贴一下在controller里面的测试

package com.software.controller;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.software.entity.User;
import com.software.serivce.TestService;

import redis.clients.jedis.Jedis;

@Controller
@RequestMapping("/test")
public class testController {
    private static Logger log=LoggerFactory.getLogger(testController.class);
    
   
    //必须
    @Resource
    private RedisTemplate redisTemplate;
    
	@RequestMapping("/testIndex")
	@ResponseBody
	public void testIndex() {
		 System.out.println("走");
         //向redsi里面放值
		 redisTemplate.opsForValue().set("fu", "我用来测试redis的");
		 //打印取值
		 System.err.println("redis输出"+redisTemplate.opsForValue().get("fu"));
	}

}

这是控制台输出:

到这里就结束了  如果有需要别的代码的朋友可以说 然后我会继续贴在这里 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值