Spring-Data-Redis之实例Demo
来源:互联网 发布:全国冷藏车配货app软件 编辑:程序博客网 时间:2024/06/13 19:06
了解完Spring Data Redis基本功能之后,根据快速开始的项目自己动手做了一个小Demo。使用的框架是Spring+Spring MVC+Mybatis;开发环境是Eclipse Kepler+JDK1.8+Maven3.2.3。
1、首先创建Maven工程
在pom.xml文件中引入需要用到的jar包,这里是引入了所有的jar包,可根据自己的情况添加或删除jar包。
<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>com.tgb</groupId> <artifactId>aop-redis-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <spring.version>4.3.8.RELEASE</spring.version> <mybatis.version>3.2.8</mybatis.version><mybatis.spring.version>1.2.2</mybatis.spring.version><mysql.version>5.1.32</mysql.version><jackson.version>2.4.2</jackson.version><druid.version>1.0.9</druid.version> </properties> <dependencies> <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.5</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</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-beans</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-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</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.data</groupId> <artifactId>spring-data-commons</artifactId> <version>1.12.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.0.RELEASE</version> </dependency><dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-keyvalue</artifactId> <version>1.1.4.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis.spring.version}</version></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!-- 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency> </dependencies></project>
用逆向工程的方式,根据建好的数据库生成相应的Mapper。创建自己的数据库,建立相应的表。下面给出我建表的执行脚本:
DROP TABLE IF EXISTS `demo`;CREATE TABLE `demo` ( `name` char(50) DEFAULT NULL, `id` char(50) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、创建Spring配置文件
在classpath下创建Spring配置文件applicationContext.xml,并在相应位置创建db.properties文件,配置数据库信息。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:component-scan base-package="com"/> <aop:aspectj-autoproxy proxy-target-class="true"/> <context:property-placeholder location="classpath:properties/*.properties"/><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close"><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="driverClassName" value="${jdbc.driver}" /><property name="maxActive" value="10" /><property name="minIdle" value="5" /></bean><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 数据库连接池 --><property name="dataSource" ref="dataSource" /><!-- 加载mybatis的全局配置文件 --><property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" /></bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.aop.redis.mapper" /></bean> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="minIdle" value="${redis.minIdle}" /> <property name="maxIdle" value="${redis.maxIdle}" /> <property name="maxTotal" value="${redis.maxActive}" /> <property name="maxWaitMillis" value="${redis.maxWait}" /> <property name="testOnBorrow" value="${redis.testOnBorrow}" /> </bean> <bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <!--配置集群--> <constructor-arg name="clusterConfig" ref="redisClusterConfig" /> </bean> <!-- redis template definition --> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnFactory" /> <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" /> </property> <property name="hashKeySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> </property> <property name="hashValueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/> </property> </bean> <bean id="redisClusterConfig" class="org.springframework.data.redis.connection.RedisClusterConfiguration"> <property name="maxRedirects" value="3" /> <property name="clusterNodes"> <set> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.*.*"></constructor-arg> <constructor-arg name="port" value="6379"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.*.*"></constructor-arg> <constructor-arg name="port" value="6380"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="192.168.*.*"></constructor-arg> <constructor-arg name="port" value="6381"></constructor-arg> </bean> </set> </property> </bean> </beans>
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/aop-redis?characterEncoding=utf-8jdbc.username=rootjdbc.password=123456
@Service@Transactionalpublic class RedisTemplateServiceImpl implements RedisTemplateService {@Autowiredprivate DemoMapper demoMapper;@Autowiredprivate RedisTemplate redisTemplate;public List<Demo> getByName(String name) {DemoExample example = new DemoExample();Criteria criteria = example.createCriteria();criteria.andNameEqualTo(name);return demoMapper.selectByExample(example);}public List<Demo> findAll() {DemoExample example = new DemoExample();List<Demo> demos = new ArrayList<Demo>();demos = demoMapper.selectByExample(example);// ListOperations<String, Object> list = redisTemplate.opsForList();// RedisSerializer<String> serializer =// redisTemplate.getStringSerializer();// serializer.serialize("allDemoList");// list.rightPush("allDemoList", demos);// redisTemplate.expire("allDemoList", 30, TimeUnit.SECONDS);BoundListOperations operations = redisTemplate .boundListOps("allDemoList");operations.rightPush(demos);operations.expire(30, TimeUnit.SECONDS);return demos;}public Demo getById(String id) {DemoExample example = new DemoExample();Criteria criteria = example.createCriteria();criteria.andIdEqualTo(id);ValueOperations<String, Object> value = redisTemplate.opsForValue();value.set("demoId", id);return demoMapper.selectByExample(example).get(0);}}从启动类启动后,调用该Service的方法,即可存储数据到Redis缓存中去。
完整项目请点击链接下载:http://download.csdn.net/detail/u013038861/9850543。RedisTemplate具体的使用API下篇博客再介绍。
阅读全文
0 0
- Spring-Data-Redis之实例Demo
- Spring-data-redis: serializer实例
- Spring-data-redis:特性与实例
- Spring-data-redis在shiro中的实例
- Spring-data-redis:特性与实例
- Spring-data-redis:特性与实例
- redis:spring-data-redis
- Spring-Data-Redis之功能讲解
- Spring-Data-Redis之RedisTemplate的使用
- Spring Data Redis实战之提供RedisTemplate
- Spring-Data-Redis之RedisTemplate的使用
- redis 使用实例demo
- java之redis篇(spring-data-redis整合)
- java之redis篇(spring-data-redis整合)
- java之redis篇(spring-data-redis整合)
- java之redis篇(spring-data-redis整合)
- java之redis篇(spring-data-redis整合)
- Redis入门很简单之八【Spring Data Redis初探】
- [LeetCode
- backtrace 调试 代码执行的路径(调用栈)
- python~crush之convert工具
- File文件使用
- Hibernate关联关系映射---1对1
- Spring-Data-Redis之实例Demo
- Python中单词大小写正规化
- java并发底层实现原理
- Android 数据结构以及常用的算法
- 案例--新闻客户端
- TCP VEGAS
- MPI学习资料
- java基础day02
- 浅谈多线程生产者与消费者