这几天的研究ssm redis 终于进入主题了,今天参考了网上一些文章搭建了一下ssm+redis整合,特别记录下来以便以后可以查询使用,有什么不足请大牛们提点

项目架构

1、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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.tp.soft</groupId><artifactId>taop-web-redis</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>taop-web-redis Maven Webapp</name><url>http://maven.apache.org</url><properties><!-- spring版本号 --><spring.version>4.3.2.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.2.8</mybatis.version><!-- log4j日志文件管理包版本 --><slf4j.version>1.7.7</slf4j.version><log4j.version>1.2.17</log4j.version><oracle.version>10.2.0.5.0</oracle.version></properties><dependencies><!-- 添加Spring-core包 --><!-- https://mvnrepository.com/artifact/org.springframework/spring-core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><!-- 添加spring-context包 --><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><!-- 添加spring-tx包 --><!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><!-- 添加spring-jdbc包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><!-- 为了方便进行单元测试,添加spring-test包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</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-aop</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-webmvc</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-orm</artifactId><version>${spring.version}</version></dependency><!--添加aspectjweaver包 --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.9</version></dependency><!-- 添加mybatis的核心包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- 添加mybatis与Spring整合的核心包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><!-- 添加servlet3.0核心包 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.2-b01</version></dependency><!-- jstl --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- 添加druid连接池包 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.24</version></dependency><!-- 添加junit单元测试包 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency>  <groupId>com.oracle</groupId>  <artifactId>ojdbc14</artifactId>  <version>${oracle.version}</version>  </dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.6.2.RELEASE</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-ehcache</artifactId><version>1.0.0</version></dependency></dependencies><build><finalName>maven-tp-web</finalName></build>
</project>

2、jdbc.properties

#JDBCdriver
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver#JDBC
jdbc.url=你的连接服务器
jdbc.username=数据库账号
jdbc.password=数据库密码
jdbc.publickey=阿里秘钥jdbc.dbcp.initialSize=10
jdbc.dbcp.maxActive=500
jdbc.dbcp.maxIdle=10
jdbc.dbcp.minIdle=1
jdbc.dbcp.maxWait=120000

3、log4j.properties 可以使用mybatis自带

4、redis.properties

redis.host = 192.168.76.76
redis.port = 6379
redis.pass = admin
redis.maxIdle = 200
redis.maxActive = 1024
redis.maxWait = 10000
redis.testOnBorrow = true

5、spring-source.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/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsd"><!-- 引入dbconfig.properties属性文件 --><context:property-placeholder location="classpath:*.properties" /><!-- 自动扫描(自动注入),扫描me.gacl.service这个包以及它的子包的所有使用@Service注解标注的类 --><context:component-scan base-package="com.tp.soft" />
</beans>

6、spring-redis.xml

<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:mvc="http://www.springframework.org/schema/mvc"xmlns:util="http://www.springframework.org/schema/util"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.3.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsd"><!-- 连接池基本参数配置,类似数据库连接池 --><context:property-placeholder location="classpath*:redis.properties" /><bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"><property name="maxIdle" value="${redis.maxIdle}" /><property name="testOnBorrow" value="${redis.testOnBorrow}"/></bean><!-- 连接池配置,类似数据库连接池 --><bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" ><property name="hostName" value="${redis.host}"></property><property name="port" value="${redis.port}"></property><property name="password" value="${redis.pass}"></property><property name="poolConfig"  ref="poolConfig"></property> </bean><!-- 调用连接池工厂配置 --><bean id="redisTemplate" class=" org.springframework.data.redis.core.RedisTemplate"><property name="connectionFactory" ref="connectionFactory"></property><!--  如果不配置Serializer,那么存储的时候智能使用String,如果用User类型存储,那么会提示错误User can't cast   to String!!!   --><property name="keySerializer">  <bean  class="org.springframework.data.redis.serializer.StringRedisSerializer" />  </property>  <property name="valueSerializer">  <bean  class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />  </property> </bean>
</beans>

7、spring-mybatis.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: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-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"><!--Druid 连接池配置--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="filters" value="stat,config" /><property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${jdbc.publickey}" /><!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="1" /><property name="minIdle" value="1" /> <property name="maxActive" value="40" /><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="60000" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="60000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="300000" /><property name="validationQuery" value="SELECT 'x' FROM DUAL" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><!-- 打开PSCache,并且指定每个连接上PSCache的大小 --><property name="poolPreparedStatements" value="true" /><property name="maxPoolPreparedStatementPerConnectionSize" value="20" /><!-- 超过时间限制是否回收 --> <property name="removeAbandoned" value="true" /> <!-- 超时时间;单位为秒。180秒=3分钟 --> <property name="removeAbandonedTimeout" value="180" /> <!-- 关闭abanded连接时输出错误日志 --> <property name="logAbandoned" value="true" /><!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 --><!-- property name="filters" value="stat" /--> </bean><!-- 配置sqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 实例化sqlSessionFactory时需要使用上述配置好的数据源以及SQL映射文件 --><property name="dataSource" ref="dataSource" /><!-- 自动扫描me/gacl/mapping/目录下的所有SQL映射的xml文件, 省掉Configuration.xml里的手工配置 value="classpath:com/mapper/*.xml"指的是classpath(类路径)下com.mapping包中的所有xml文件 UserMapper.xml位于com.mapping包下,这样UserMapper.xml就可以被自动扫描 --><property name="mapperLocations" value="classpath:com/tp/soft/mapper/*.xml" /><property name="configLocation" value="classpath:mybatis/myBatis.xml"/></bean><!-- 配置扫描器 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 扫描com.dao这个包以及它的子包下的所有映射接口类 --><property name="basePackage" value="com.tp.soft.dao" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /></bean>
</beans>

8、myBatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><!-- 日志开启 --><setting name="logImpl" value="LOG4J"/><!-- 二级缓存开启 --><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="false"/><setting name="aggressiveLazyLoading" value="true"/></settings><!-- 配置映射类的别名 --><typeAliases><!-- 配置entity下的所有别名 别名首字母小写 --><package name="com.tp.soft.entity" /></typeAliases>
</configuration>  

9、User.java

package com.tp.soft.entity;import java.io.Serializable;public class User implements Serializable{/*** */private static final long serialVersionUID = -1695973853274402680L;private int userid;private String login_name;private String login_pwd;public User() {}public User(int userid, String login_name, String login_pwd) {super();this.userid = userid;this.login_name = login_name;this.login_pwd = login_pwd;}public int getUserid() {return userid;}public void setUserid(int userid) {this.userid = userid;}public String getLogin_name() {return login_name;}public void setLogin_name(String login_name) {this.login_name = login_name;}public String getLogin_pwd() {return login_pwd;}public void setLogin_pwd(String login_pwd) {this.login_pwd = login_pwd;}}

10、几个工具类

redisUtil.java 连接池类

package com.tp.soft.redis;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;public class JedisUtil {private static String ADDR = "192.168.76.76";private static int PORT = 6379;private static String AUTH = "admin";private static int MAX_ACTIVE = 1024;private static int MAX_IDLE = 200;private static int MAX_WAIT = 10000;private static int TIMEOUT = 10000;private static boolean TEST_ON_BORROW = true;private static JedisPool jedisPool = null;static {try{JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(MAX_IDLE);config.setMaxWaitMillis(MAX_WAIT);config.setTestOnBorrow(TEST_ON_BORROW);jedisPool = new JedisPool(config,ADDR,PORT,TIMEOUT,AUTH);}catch (Exception e) {e.printStackTrace();}}public synchronized static Jedis getJedis(){try{if(jedisPool != null){Jedis jedis = jedisPool.getResource();return jedis;}else{return null;}}catch (Exception e) {e.printStackTrace();return null;}}public static void returnResource(final Jedis jedis){if(jedis != null){jedisPool.returnResource(jedis);}}
}

SerializeUtil.java 序列化类

package com.tp.soft.redis;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;public class SerializeUtil {public static byte[] serialize(Object object) {ObjectOutputStream oos = null;ByteArrayOutputStream baos = null;try {// 序列化baos = new ByteArrayOutputStream();oos = new ObjectOutputStream(baos);oos.writeObject(object);byte[] bytes = baos.toByteArray();return bytes;} catch (Exception e) {e.printStackTrace();}return null;}public static Object unserialize(byte[] bytes) {if (bytes == null)return null;ByteArrayInputStream bais = null;try {// 反序列化bais = new ByteArrayInputStream(bytes);ObjectInputStream ois = new ObjectInputStream(bais);return ois.readObject();} catch (Exception e) {e.printStackTrace();}return null;}
}

RedisCache.java 缓存类

package com.tp.soft.redis;import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;import org.apache.ibatis.cache.Cache;/** 使用第三方缓存服务器,处理二级缓存*/
public class RedisCache implements Cache {private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock();private String id;public RedisCache(final String id) {if (id == null) {throw new IllegalArgumentException("Cache instances require an ID");}this.id = id;}public String getId() {return this.id;}public void putObject(Object key, Object value) {JedisUtil.getJedis().set(SerializeUtil.serialize(key.toString()),SerializeUtil.serialize(value));}public Object getObject(Object key) {Object value = SerializeUtil.unserialize(JedisUtil.getJedis().get(SerializeUtil.serialize(key.toString())));return value;}public Object removeObject(Object key) {return JedisUtil.getJedis().expire(SerializeUtil.serialize(key.toString()), 0);}public void clear() {JedisUtil.getJedis().flushDB();}public int getSize() {return Integer.valueOf(JedisUtil.getJedis().dbSize().toString());}public ReadWriteLock getReadWriteLock() {return readWriteLock;}}

11、UserMapper.xml

如果设置useCache="false" 则不进入二级redis缓存

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.tp.soft.dao.UserMapper"><!-- 缓存类配置 --><cache type="com.tp.soft.redis.RedisCache" /><select id="getUserById" parameterType="int" resultType="user" useCache="true"> select * from AU_USER where userid = #{id}</select>
</mapper>

12、UserMapper.java

package com.tp.soft.dao;import com.tp.soft.entity.User;public interface UserMapper {public User getUserById(int id);
}

13、UserSvc.java

package com.tp.soft.service;import com.tp.soft.entity.User;public interface UserSvc {public User getUser(int id);
}

14、UserSvcImpl.java

package com.tp.soft.service.impl;import javax.annotation.Resource;import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;import com.tp.soft.dao.UserMapper;
import com.tp.soft.entity.User;
import com.tp.soft.service.UserSvc;@Service("userService")
public class UserSvcImpl implements UserSvc{@Resourceprivate UserMapper userMapper;public User getUser(int id) {User user = null;try{user = userMapper.getUserById(id);}catch (DataAccessException e) {System.out.println(e.getLocalizedMessage());}return user;}}

15、配置springmvc

<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:mvc="http://www.springframework.org/schema/mvc"xmlns:util="http://www.springframework.org/schema/util"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.3.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsd"><!-- 设置注解扫描包 只扫描@Controller注解 --><context:component-scan base-package="com.tp.soft" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /></context:component-scan><mvc:annotation-driven /><!-- 静态资源 --><mvc:default-servlet-handler/><!-- 默认视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="3"><property name="suffix" value=".jsp" /><property name="prefix" value="/WEB-INF/pages/"></property></bean><!-- SpringMVC上传文件时,需配置MultipartResolver处理器 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8"><!-- 指定所上传文件的总大小不能超过104857600......注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --><property name="maxUploadSize" value="104857600" /><property name="maxInMemorySize" value="4096"/></bean>
</beans>  

16、配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><display-name>ssm整合(maven)</display-name><!-- spring配置文件整合配置 -->
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring-source.xml, classpath:spring/spring-mybatis.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener><!-- springmvc配置 -->
<servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- druid 监控 -->
<servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern> </servlet-mapping> <filter> <filter-name>druidWebStatFilter</filter-name> <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> <init-param> <param-name>exclusions</param-name> <param-value>/public/*,*.js,*.css,/druid*,*.jsp,*.swf</param-value> </init-param> <init-param> <param-name>principalSessionName</param-name> <param-value>sessionInfo</param-value> </init-param> <init-param> <param-name>profileEnable</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>druidWebStatFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>

17、UserController.java

package com.tp.soft.controller;import java.util.HashMap;
import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import com.tp.soft.entity.User;
import com.tp.soft.service.UserSvc;@Controller
public class UserController {@Resourceprivate UserSvc userSvc;@RequestMapping(value="/toQueryUser")public ModelAndView toQueryUser(){User user = userSvc.getUser(21);Map<String, Object> map = new HashMap<String, Object>();map.put("user", user);return new ModelAndView("/pc/userTest", map);}
}

18、访问

http://localhost/taop-web-redis/toQueryUser 第一次

结果

访问第二次

结果

不再打印sql

当清空缓存数据

再请求链接

结果

到此 搭建结束,后期将强化项目架构。

ssm+redis整合(通过cache方式)相关推荐

  1. springboot整合spring @Cache和Redis

    转载自  springboot整合spring @Cache和Redis spring基于注解的缓存 对于缓存声明,spring的缓存提供了一组java注解: @Cacheable:触发缓存写入. @ ...

  2. SSM整合之XML方式,与配置事务,拦截器,异常处理,PageHelper分页插件整合

    SSM整合之XML方式 将主流的三大框架整合一起使用 spring:将需要的bean交给IOC管理 SpringMVC:解决表现层 MyBatis:解决持久层 创建maven项目(配置文件与代码中注释 ...

  3. SSM整合:原始方式

    01:SSM整合:原始方式 02:SSM整合:Spring整合Mybatis 文章目录 1. 原始方式 1.1 准备工作 1.1 导入相关的Maven依赖 1.2 编写实体类 1.3 编写Mapper ...

  4. springBoot中shiro与Redis整合的配置文件

                                                                 springBoot中shiro与Redis整合的配置文件 整合依赖: < ...

  5. java学籍管理系统课设报告,基于SSM+Redis+LayUI的大学生学籍信息管理系统-java学生学籍信息管理系统mysql数据源...

    "基于SSM+Redis+LayUI的大学生学籍信息管理系统-java学生学籍信息管理系统mysql数据源 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释. 2.课题设计仅供参考学 ...

  6. Redis整合Spring结合使用缓存实例(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的 ...

  7. SringBoot+Redis整合

    缓存使用设计 连接缓存 查询缓存 如果缓存中没有再到MySQL中查询 mysql查询结果放入redis Redis整合步骤 将redis整合到项目中(redis+spring) 引入pom依赖信息(所 ...

  8. Redis整合Spring结合使用缓存实例

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的方法切入到有需要进入缓存的类或方 ...

  9. mybatis java类注解式_Spring整合Mybatis注解方式

    Spring整合Mybatis(注解方式) 环境准备 jar包: Spring所需依赖:spring-context.spring-aspects.aspectjrt.aspectjweaver.sp ...

最新文章

  1. C#反射(Reflection)详解
  2. 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | ClassLoader#loadClass 函数分析 | BaseDexClassLoader#findClass 分析 )
  3. information_schema中的所有表和视图
  4. NS2安装错误系列(1)
  5. 利用jvisualvm分析JVM,进行性能调优
  6. 图解如何在DC上添加自定义属性类
  7. centos7 mysql安装与用户设置
  8. 年薪30k-50k、面试通过率90%,这个职位到底是在做什么?
  9. php自适应在线电影影视网站系统源码
  10. NHibernate :何必到处都virtual
  11. java外文文献_spring框架外文文献 PDF 下载
  12. php免杀书籍,php免杀教程【绝对原创+首发】
  13. 分辨率单位及换算详解
  14. 通货膨胀率固定时,贷款利率多大,贷款买房才和存款攒钱一样划算?
  15. 中国大学MOOC中国文化概论试题(含答案)
  16. 用矿卡P106升级tensorflow深度学习服务器
  17. matlab——红绿灯颜色及数字识别(二)
  18. 国内外黑客大会资料下载
  19. 在sql执行横表转换过程中,出现特殊字符‘∞’
  20. 基于CNN实现视频动作分类任务

热门文章

  1. 网页采集工具-免费网页采集工具大全
  2. vue大文件上传控件选哪个好?
  3. 接收输入的一行字符,统计出字符串包含数字的个数 2、编写一个程序,计算字符串中子串出现的次数 3、请输入星期几的第1个字母,用来判断是星期几,如果第1个字母一样,则继续判断第2个字母,依次类推。
  4. 大数据基本概念hadoop、hadoop生态系统hdfsMapReduce
  5. mac 在连接wifi时出现“无互联网连接”的警告,叹号
  6. 相关系数与协方差间的转换
  7. 新产品发布 | HawkEye作业票管理系统
  8. 3dmax骨骼的绑定
  9. 如何查看进程所打开的端口
  10. 表横竖转换(行列转换)PIVOT 和 UNPIVOT 用法