Redis搭建:Maven+Spring+SpringMVC+Redis

一、搭建Redis环境 3.2.1
Redis gitHub 下载地址

下载之后直接解压得到以下目录结构

点击redis-server.exe即可启动Redis数据库

输出信息:启动成功、端口号、pid 即启动成功。

二、搭建开发环境

1>搭建springmvc支持

<!-- 搭建springmvc -->
    <dependency> 
	    <groupId>org.springframework</groupId> 
	    <artifactId>spring-webmvc</artifactId> 
	    <version>4.3.4.RELEASE</version> 
    </dependency> 
	    <dependency> 
	    <groupId>javax.servlet</groupId> 
	    <artifactId>javax.servlet-api</artifactId> 
	    <version>3.1.0</version> 
    </dependency> 
    <dependency> 
	    <groupId>com.fasterxml.jackson.core</groupId> 
	    <artifactId>jackson-core</artifactId> 
	    <version>2.8.4</version> 
    </dependency> 
    <dependency> 
	    <groupId>com.fasterxml.jackson.core</groupId> 
	    <artifactId>jackson-databind</artifactId> 
	    <version>2.8.4</version> 
    </dependency>

2>集成Redis

 <!-- 集成Redis -->
	<dependency> 
		<groupId>org.springframework.data</groupId> 
		<artifactId>spring-data-redis</artifactId> 
		<version>1.7.5.RELEASE</version> 
	</dependency> 
	<!-- Redis客户端 --> 
	<dependency> 
		<groupId>redis.clients</groupId> 
		<artifactId>jedis</artifactId> 
		<version>2.9.0</version> 
	</dependency>

3>配置Redis:spring-redis.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"
	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-4.3.xsd">

	<!-- 引入redis配置 --> 
	<context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/> 
	<!-- Redis 配置 --> 
	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> 
		<property name="maxTotal" value="${redis.pool.maxTotal}" /> 
		<property name="maxIdle" value="${redis.pool.maxIdle}" /> 
		<property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" /> 
		<property name="testOnBorrow" value="${redis.pool.testOnBorrow}" /> 
	</bean> 
	<!-- redis单节点数据库连接配置 --> 
	<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> 
		<property name="hostName" value="${redis.ip}" /> 
		<property name="port" value="${redis.port}" /> 
		<!-- <property name="password" value="${redis.pass}" /> --> 
		<property name="poolConfig" ref="jedisPoolConfig" /> 
	</bean> 
	<!-- redisTemplate配置,redisTemplate是对Jedis的对redis操作的扩展,有更多的操作,封装使操作更便捷 --> 
	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> 
		<property name="connectionFactory" ref="jedisConnectionFactory" /> 
	</bean>

</beans>

4>配置redis.properties

redis.pool.maxTotal=105 
redis.pool.maxIdle=10 
redis.pool.maxWaitMillis=5000 
redis.pool.testOnBorrow=true 
redis.ip=127.0.0.1 
redis.port=6379

三、配置Servlet

此处不在web.xml中配置,采取硬编码方式

1.DispatchServlet拦截器

package com.redis.init;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * 配置拦截器
 * @author hc
 *
 */
public class DispatcherServletInit extends AbstractAnnotationConfigDispatcherServletInitializer{

	/**
	 * 配置应用上下文
	 */
	@Override
	protected Class<?>[] getRootConfigClasses() {
		return new Class<?>[]{RootConfig.class};
	}

	/**
	 * 配置web上下文
	 */
	@Override
	protected Class<?>[] getServletConfigClasses() {
		return new Class<?>[]{WebConfig.class};
	}

	@Override
	protected String[] getServletMappings() {
		return new String[]{"/"};
	}

}

2.应用上下文WebConfig

package com.redis.init;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

/**
 * 应用上下文
 * @author hc
 *
 */
@Configuration
@ComponentScan(basePackages={"com.redit"},excludeFilters={
		@Filter(type=FilterType.ANNOTATION,value=Controller.class),
		@Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)
})
@ImportResource("classpath:spring-*.xml")//引入redis配置文件
public class RootConfig {

}

3.web上下文

package com.redis.init;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan({"com.web"})
public class WebConfig extends WebMvcConfigurerAdapter{

	/**
	 * 配置视图解析器
	 * @return
	 */
	@Bean
	public ViewResolver viewResolver(){
		InternalResourceViewResolver resolver = new InternalResourceViewResolver();
		resolver.setPrefix("/WEB-INF/views/");
		resolver.setSuffix(".html");
		resolver.setExposePathVariables(true);
		return resolver;
	}

	/**
	 * 配置静态资源管理器
	 */
	@Override
	public void configureDefaultServletHandling(
			DefaultServletHandlerConfigurer configurer) {
		super.configureDefaultServletHandling(configurer);
		configurer.enable();
	}
}

4.Controller

package com.redis.web;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.data.redis.core.ListOperations;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("user")
public class UserController {

	@Resource(name="redisTemplate")
	private ListOperations<String, String[]> listUser;

	@RequestMapping("/list")
	@ResponseBody
	public List<String[]> list(){
		List<String[]> list=listUser.range("user", 0, -1);
		return list;
	}

	@RequestMapping("/add")
	@ResponseBody
	public void add(String... user){
		listUser.leftPush("user", user);
	}
}

基本配置完毕,待测试

四、使用Jedis客户端来测试

1.启动redis服务器

<dependency>
		<groupId>redis.clients</groupId>
		<artifactId>jedis</artifactId>
		<version>2.7.2</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-test</artifactId>
		<version>2.5</version>
		<scope>test</scope>
	</dependency>
	<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.4</version>
      <scope>test</scope>
    </dependency>

junit尽量用高版本的,不然测试的时候会有版本冲突

2.配置参数

<!-- 配置Jedis链接服务器参数 -->
	<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> 
		<property name="maxTotal" value="4096"/> 
		<property name="maxIdle" value="200"/> 
		<property name="maxWaitMillis" value="3000"/> 
		<property name="testOnBorrow" value="true" /> 
		<property name="testOnReturn" value="true" /> 
	</bean> 
	<bean id="jedisPool" class="redis.clients.jedis.JedisPool"> 
		<constructor-arg index="0" ref="poolConfig"/> 
		<constructor-arg index="1" value="127.0.0.1"/> 
		<constructor-arg index="2" value="6379" type="int"/> 
	</bean>

3.测试

package redis_demo;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 * 使用Jedis来测试redis
 * @author hc
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring-redis.xml")
public class RedisTestByJedis extends AbstractJUnit4SpringContextTests{

	@Autowired
	private JedisPool jedisPool;

	@Test
	public void basicTest(){
		Jedis jedis = jedisPool.getResource();
		//存值
		jedis.set("user.name", "aaa");
		jedis.set("user.pass", "123");

		//取值
		String name = jedis.get("user.name");
		String pass = jedis.get("user.pass");
		//断言
		Assert.assertEquals("aaa", name);
		//Assert.assertEquals("1234", pass);//错误
		Assert.assertEquals("123", pass);

		jedis.del("user.name");
		Boolean result = jedis.exists("user.name");
		Assert.assertEquals(false, result);

		result = jedis.exists("user.pass");
		Assert.assertEquals(true, result);

		jedis.close();
	}
}

显示通过测试

时间: 2024-10-10 22:47:08

Redis搭建:Maven+Spring+SpringMVC+Redis的相关文章

用Eclipse 搭建一个Maven Spring SpringMVC 项目

1: 先创建一个maven web  项目: 可以参照之前的文章:  用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven  修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt

SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)

原文链接: http://blog.csdn.net/gallenzhang/article/details/51932152 本篇文章主要内容是介绍如何使用IntelliJ IDEA创建spring+ SpringMVC + MyBatis项目,下面会给出项目搭建的详细步骤以及相关的配置文件. =======================================前言 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helve

SSM框架的搭建(Spring+SpringMVC+Mybatis第一个项目的搭建)

作者使用MyEclipse 2014版本 本博客所编写程序源码为: http://download.csdn.net/detail/tmaskboy/9526815 1. 新建Web project 2. 添加ljar文件 3. web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

Maven+Spring+SpringMVC+MyBatis框架搭建

看了一段时间Android,学了学C++,搭个SSM的框架复习复习老本行. 原来的SSH——Struts,spring,hibernate,逐渐被现在的SSM取代,当然了,还有各有优缺点的. 搭的这个框架中的SpringMVC并不是返回页面,而是返回json数据,在前端的js中处理页面的展现,我是为了让Android客户端能够访问SpringMVC的controller,并给Android客户端返回json数据考虑的. 一.还是一样的,要先看maven中都引入什么包: Java代码 复制代码 收

IntellliJ IDEA+maven+spring+springMVC+tomcat搭建本地开发环境(一)

1.新建maven项目,选择如下选项,然后进入下一步 2.输入项目相应的信息,进入下一步 3.配置maven环境,其中有个下载依赖包失败的问题,下篇将提到解决 4.点击finish,等待maven下载相应的jar包,创建src/main/webapp/WEB-INF/web.xml,src/main/java,src/main/resources,项目结构如下: 5.引入java web项目相关到spring和springmvc的jar依赖,pom文件中添加如下: 1 <dependency>

记录-项目java项目框架搭建的一些问题(maven+spring+springmvc+mybatis)

伴随着项目框架的落成后,本以为启动就能成功的,but.... 项目启动开始报错误1:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 这个错百度到说是缺少这个包,但实际在项目中看到maven里面是有这个包的.于是继续百度到[可能包是找到了,但没有依赖在项目中] 项目右击-----project-----deployment assembly , add ,java bui

maven+Spring+SpringMVC+Hibernate快速搭建

目录结构: spring-servlet.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:mvc="http://www.sp

IntellliJ IDEA+maven+spring+springMVC+tomcat搭建本地开发环境(二)

前面一章又讲到过搭建环境遇到的问题,下面一一列举并解决. 一.maven依赖包下载失败. 本地maven安装文件中conf-setting.xml,配置阿里云镜像. 网上有很多配置阿里云镜像的配置,大同小异,但是都是没能成功的下载jar,最后发现是url又变了.所以当网上配置阿里镜像,而依赖包下载不下来时,可以到官网查找最新的地址,操作如下. 查看阿里云镜像1.访问https://maven.aliyun.com/mvn/view 进入仓库服务 2.找到central可以看到path3.将pat

本地跑起来!IntellliJ IDEA+maven+spring+springMVC+tomcat+mongodb搭建本地开发环境

在前面搭建的环境上加上mongodb配置文件,pom.xml增加mongo相关依赖,增加一些代码即可搭建成功. 1.增加mongdb-context.xml和mongodb.properties mongdb-context.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans&quo