废话不多少

项目结构

pom.xml配置例如以下

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4.  
  5. <groupId>test</groupId>
  6. <artifactId>springmvc_spring_jpa</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <packaging>jar</packaging>
  9.  
  10. <name>springmvc_spring_jpa</name>
  11. <url>http://maven.apache.org</url>
  12. <!--各个jar的版本号 -->
  13. <properties>
  14. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  15. <spring.version>4.0.0.RELEASE</spring.version>
  16. <spring.jpa.version>1.8.0.RELEASE</spring.jpa.version>
  17. <shiro.version>1.2.2</shiro.version>
  18. <mysql.connector.version>5.1.21</mysql.connector.version>
  19. <aspectj.version>1.6.11</aspectj.version>
  20. <c3p0.version>0.9.5-pre3</c3p0.version>
  21. <slf4j.version>1.7.2</slf4j.version>
  22. <log4j.version>1.2.16</log4j.version>
  23. <junit.version>4.11</junit.version>
  24. <jsonlib.version>2.4</jsonlib.version>
  25. </properties>
  26.  
  27. <dependencies>
  28. <!-- spring-jpa规范 -->
  29. <dependency>
  30. <groupId>org.springframework.data</groupId>
  31. <artifactId>spring-data-jpa</artifactId>
  32. <version>${spring.jpa.version}</version>
  33. </dependency>
  34. <!--spring bean容器 -->
  35. <dependency>
  36. <groupId>org.springframework</groupId>
  37. <artifactId>spring-beans</artifactId>
  38. <version>${spring.version}</version>
  39. </dependency>
  40. <!-- spring配置 -->
  41. <dependency>
  42. <groupId>org.springframework</groupId>
  43. <artifactId>spring-context</artifactId>
  44. <version>${spring.version}</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.springframework</groupId>
  48. <artifactId>spring-context-support</artifactId>
  49. <version>${spring.version}</version>
  50. </dependency>
  51. <!-- springweb连接 -->
  52. <dependency>
  53. <groupId>org.springframework</groupId>
  54. <artifactId>spring-web</artifactId>
  55. <version>${spring.version}</version>
  56. </dependency>
  57. <dependency>
  58. <groupId>org.springframework</groupId>
  59. <artifactId>spring-orm</artifactId>
  60. <version>${spring.version}</version>
  61. <type>jar</type>
  62. <scope>compile</scope>
  63. </dependency>
  64. <!-- spring webmvc -->
  65. <dependency>
  66. <groupId>org.springframework</groupId>
  67. <artifactId>spring-webmvc</artifactId>
  68. <version>${spring.version}</version>
  69. </dependency>
  70. <!-- spring測试 -->
  71. <dependency>
  72. <groupId>org.springframework</groupId>
  73. <artifactId>spring-test</artifactId>
  74. <version>${spring.version}</version>
  75. <scope>test</scope>
  76. </dependency>
  77. <dependency>
  78. <groupId>org.springframework</groupId>
  79. <artifactId>spring-jms</artifactId>
  80. <version>${spring.version}</version>
  81. </dependency>
  82. <!-- spring切面 -->
  83. <dependency>
  84. <groupId>org.springframework</groupId>
  85. <artifactId>spring-aop</artifactId>
  86. <version>${spring.version}</version>
  87. </dependency>
  88. <!-- spring 数据库连接 -->
  89. <dependency>
  90. <groupId>org.springframework</groupId>
  91. <artifactId>spring-jdbc</artifactId>
  92. <version>${spring.version}</version>
  93. <type>jar</type>
  94. <scope>runtime</scope>
  95. </dependency>
  96. <dependency>
  97. <groupId>org.hibernate</groupId>
  98. <artifactId>hibernate-entitymanager</artifactId>
  99. <version>4.2.7.SP1</version>
  100. </dependency>
  101. <!-- hibernate验证 -->
  102. <dependency>
  103. <groupId>org.hibernate</groupId>
  104. <artifactId>hibernate-validator</artifactId>
  105. <version>5.1.3.Final</version>
  106. </dependency>
  107. <!-- 面向切面扩展 -->
  108. <dependency>
  109. <groupId> org.aspectj</groupId>
  110. <artifactId> aspectjweaver</artifactId>
  111. <version>${aspectj.version}</version>
  112. </dependency>
  113. <!-- 数据库连接池 -->
  114. <dependency>
  115. <groupId>com.mchange</groupId>
  116. <artifactId>c3p0</artifactId>
  117. <version>${c3p0.version}</version>
  118. <type>jar</type>
  119. <scope>compile</scope>
  120. </dependency>
  121. <!-- mysql连接 -->
  122. <dependency>
  123. <groupId>mysql</groupId>
  124. <artifactId>mysql-connector-java</artifactId>
  125. <version>${mysql.connector.version}</version>
  126. <type>jar</type>
  127. <scope>compile</scope>
  128. </dependency>
  129. <!-- 单元測试 -->
  130. <dependency>
  131. <groupId>junit</groupId>
  132. <artifactId>junit</artifactId>
  133. <version>${junit.version}</version>
  134. <scope>test</scope>
  135. </dependency>
  136. <!-- Shiro security (权限控制) -->
  137. <dependency>
  138. <groupId>org.apache.shiro</groupId>
  139. <artifactId>shiro-core</artifactId>
  140. <version>${shiro.version}</version>
  141. </dependency>
  142. <dependency>
  143. <groupId>org.apache.shiro</groupId>
  144. <artifactId>shiro-web</artifactId>
  145. <version>${shiro.version}</version>
  146. </dependency>
  147. <dependency>
  148. <groupId>org.apache.shiro</groupId>
  149. <artifactId>shiro-cas</artifactId>
  150. <version>${shiro.version}</version>
  151. </dependency>
  152. <dependency>
  153. <groupId>org.apache.shiro</groupId>
  154. <artifactId>shiro-spring</artifactId>
  155. <version>${shiro.version}</version>
  156. </dependency>
  157. <!-- end of Shiro security -->
  158.  
  159. <!-- logging 日志 -->
  160. <dependency>
  161. <groupId>org.slf4j</groupId>
  162. <artifactId>slf4j-log4j12</artifactId>
  163. <version>1.7.2</version>
  164. </dependency>
  165. <!-- io包 -->
  166. <dependency>
  167. <groupId>commons-io</groupId>
  168. <artifactId>commons-io</artifactId>
  169. <version>1.3.2</version>
  170. </dependency>
  171. <!-- fileUpload 文件上传 -->
  172. <dependency>
  173. <groupId>commons-fileupload</groupId>
  174. <artifactId>commons-fileupload</artifactId>
  175. <version>1.2.2</version>
  176. </dependency>
  177. <!-- redis缓存 -->
  178. <dependency>
  179. <groupId>redis.clients</groupId>
  180. <artifactId>jedis</artifactId>
  181. <version>2.6.2</version>
  182. <type>jar</type>
  183. <scope>compile</scope>
  184. </dependency>
  185. <!-- spring-redis -->
  186. <dependency>
  187. <groupId>org.springframework.data</groupId>
  188. <artifactId>spring-data-redis</artifactId>
  189. <version>1.4.2.RELEASE</version>
  190. </dependency>
  191.  
  192. </dependencies>
  193.  
  194. <!-- Build support -->
  195. <build>
  196. <plugins>
  197. <!-- jdk版本号 -->
  198. <plugin>
  199. <groupId>org.apache.maven.plugins</groupId>
  200. <artifactId>maven-compiler-plugin</artifactId>
  201. <version>3.0</version>
  202. <configuration>
  203. <source>1.7</source>
  204. <target>1.7</target>
  205. <encoding>utf-8</encoding>
  206. </configuration>
  207. </plugin>
  208. <!-- 相关文件编码 -->
  209. <plugin>
  210. <groupId>org.apache.maven.plugins</groupId>
  211. <artifactId>maven-resources-plugin</artifactId>
  212. <configuration>
  213. <encoding>utf-8</encoding>
  214. </configuration>
  215. </plugin>
  216. <!-- tomcat版本号 -->
  217. <plugin>
  218. <groupId>org.apache.tomcat.maven</groupId>
  219. <artifactId>tomcat7-maven-plugin</artifactId>
  220. <version>2.0-beta-1</version>
  221. <configuration>
  222. <additionalProjectnatures>
  223. <projectnature>org.eclipse.jdt.core.javanature</projectnature>
  224. <projectnature>org.eclipse.m2e.core.maven2Nature</projectnature>
  225. <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
  226. </additionalProjectnatures>
  227. <additionalBuildcommands>
  228. <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
  229. <buildcommand>org.eclipse.m2e.core.maven2Builder</buildcommand>
  230. <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
  231. </additionalBuildcommands>
  232. <uriEncoding>utf-8</uriEncoding>
  233. <port>8020</port>
  234. <path>/</path>
  235. </configuration>
  236. </plugin>
  237. </plugins>
  238. </build>
  239. <!-- end of Build support -->
  240. </project>

applicationContext.xml配置例如以下

  1. <?
  2.  
  3. xml version="1.0" encoding="UTF-8"?>
  4. <beans xmlns="http://www.springframework.org/schema/beans"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
  7. xmlns:p="http://www.springframework.org/schema/p" xmlns:cache="http://www.springframework.org/schema/cache"
  8. xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:task="http://www.springframework.org/schema/task"
  9. xmlns:jpa="http://www.springframework.org/schema/data/jpa"
  10. xsi:schemaLocation="
  11. http://www.springframework.org/schema/beans
  12. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  15. http://www.springframework.org/schema/aop
  16. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  17. http://www.springframework.org/schema/context
  18. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  19. http://www.springframework.org/schema/cache
  20. http://www.springframework.org/schema/cache/spring-cache-3.0.xsd
  21. http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
  22. http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
  23. http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
  24.  
  25. <!-- 配置者:JaneHuang -->
  26.  
  27. <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->
  28. <context:component-scan base-package="com.kugou">
  29. <context:exclude-filter type="annotation"
  30. expression="org.springframework.stereotype.Controller" />
  31. </context:component-scan>
  32.  
  33. <!-- 属性文件位置 -->
  34. <bean id="annotationPropertyConfigurer"
  35. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  36. <property name="locations">
  37. <list>
  38. <value>classpath:config/properties/jdbc.properties</value>
  39. <value>classpath:config/properties/common.properties</value>
  40. <value>classpath:config/properties/log4j.properties</value>
  41. <value>classpath:config/properties/redis.properties</value>
  42. </list>
  43. </property>
  44. </bean>
  45.  
  46. <!-- 数据源 -->
  47. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  48. <property name="driverClass" value="${jdbc.driverClassName}" />
  49. <property name="jdbcUrl" value="${jdbc.url}" />
  50. <property name="user" value="${jdbc.username}" />
  51. <property name="password" value="${jdbc.password}" />
  52. <property name="autoCommitOnClose" value="${jdbc.defaultAutoCommit}" />
  53. <property name="checkoutTimeout" value="${cpool.checkoutTimeout}" />
  54. <property name="initialPoolSize" value="${cpool.minPoolSize}" />
  55. <property name="minPoolSize" value="${cpool.minPoolSize}" />
  56. <property name="maxPoolSize" value="${cpool.maxPoolSize}" />
  57. <property name="maxIdleTime" value="${cpool.maxIdleTime}" />
  58. <property name="acquireIncrement" value="${cpool.acquireIncrement}" />
  59. <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}" />
  60. </bean>
  61.  
  62. <!-- jdbc实体管理器 -->
  63. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  64. <property name="dataSource">
  65. <ref bean="dataSource" />
  66. </property>
  67. </bean>
  68.  
  69. <!-- JPA实体管理工厂的配置 -->
  70. <bean id="entityManagerFactory"
  71. class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  72. <property name="dataSource" ref="dataSource" />
  73. <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
  74. <property name="packagesToScan" ref="packagesToScan" /><!--待扫描的实体类包,不再须要persistence.xml了 -->
  75. <property name="jpaProperties">
  76. <props>
  77. <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
  78. <prop key="hibernate.show_sql">true</prop>
  79. <prop key="hibernate.hbm2ddl.auto">update</prop>
  80. </props>
  81. </property>
  82. </bean>
  83.  
  84. <!--指定实现JPA的适配器 -->
  85. <bean id="hibernateJpaVendorAdapter"
  86. class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
  87. <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
  88. </bean>
  89. <!-- 重要配置:启用扫描并自己主动创建代理的功能 -->
  90. <jpa:repositories base-package="com.kugou"
  91. transaction-manager-ref="transactionManager"
  92. entity-manager-factory-ref="entityManagerFactory" />
  93. <!-- 实体映射 -->
  94. <bean id="packagesToScan"
  95. class="org.springframework.beans.factory.config.ListFactoryBean">
  96. <property name="sourceList">
  97. <list>
  98. <value>com.kugou.security.entity</value>
  99. </list>
  100. </property>
  101. </bean>
  102. <!-- 配置redis线程池 -->
  103. <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
  104. <!-- <property name="maxIdle" value="${redis.pool.maxIdle}" /> <property
  105. name="maxActive" value="${redis.pool.maxActive}" /> <property name="maxWait"
  106. value="${redis.pool.maxWait}" /> -->
  107. <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
  108. </bean>
  109. <!-- 连接redis -->
  110. <bean id="connectionFactory"
  111. class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
  112. p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.password}"
  113. p:pool-config-ref="poolConfig" />
  114. <!-- redis调用须要的bean -->
  115. <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
  116. <property name="connectionFactory" ref="connectionFactory" />
  117. </bean>
  118.     <!-- 事务配置 -->
  119.     <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  120.         <property name="entityManagerFactory" ref="entityManagerFactory"/>
  121.     </bean>
  122. <!-- 注解式事务 -->
  123. <tx:annotation-driven transaction-manager="transactionManager" />
  124. <!--spring文件上传 -->
  125. <bean id="multipartResolver"
  126. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  127. <property name="defaultEncoding" value="utf-8"></property>
  128. <property name="maxUploadSize" value="204800" />
  129. </bean>
  130. <!-- 定时器注解支持 -->
  131. <task:annotation-driven />
  132. <!-- 线程池配置 -->
  133. <bean id="taskExecutor"
  134. class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
  135. <property name="corePoolSize" value="2" />
  136. <property name="maxPoolSize" value="5" />
  137. <property name="queueCapacity" value="6" />
  138. <property name="keepAliveSeconds" value="2000" />
  139. <property name="rejectedExecutionHandler">
  140. <bean class="java.util.concurrent.ThreadPoolExecutor$AbortPolicy" />
  141. </property>
  142. </bean>
  143. </beans>

JPA部分代码

  1. package com.kugou.security.dao;
  2.  
  3. import org.springframework.data.jpa.repository.Query;
  4. import org.springframework.data.repository.CrudRepository;
  5. import org.springframework.data.repository.query.Param;
  6. import org.springframework.stereotype.Repository;
  7.  
  8. import com.kugou.security.entity.SysUser;
  9.  
  10. @Repository
  11. public interface SysUserDao extends CrudRepository<SysUser,String>{
  12.  
  13. @Query("from SysUser as s where s.username=:username")
  14. SysUser findByName(@Param("username")String username);
  15.  
  16. }

redis相关代码

  1. package com.kugou.security.service.impl;
  2.  
  3. import javax.annotation.Resource;
  4.  
  5. import org.springframework.dao.DataAccessException;
  6. import org.springframework.data.redis.connection.RedisConnection;
  7. import org.springframework.data.redis.core.RedisCallback;
  8. import org.springframework.data.redis.core.RedisTemplate;
  9. import org.springframework.data.redis.serializer.RedisSerializer;
  10. import org.springframework.stereotype.Service;
  11.  
  12. import com.kugou.security.entity.SysUser;
  13. import com.kugou.security.service.SysUserService;
  14.  
  15. @Service
  16. public class SysUserServiceimpl implements SysUserService {
  17.  
  18. @Resource
  19. RedisTemplate<String, SysUser> redisTemplate;
  20.  
  21. public boolean addUser(final SysUser sysUser) {
  22. boolean result = this.redisTemplate.execute(new RedisCallback<Boolean>() {
  23. @Override
  24. public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
  25. RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
  26. byte[] key = serializer.serialize(sysUser.getId());
  27. byte[] name = serializer.serialize(sysUser.getNickname());
  28. return connection.setNX(key, name);
  29. }
  30. });
  31. return result;
  32. }
  33.  
  34. public String get(final String userId) {
  35. String result = redisTemplate.execute(new RedisCallback<String>() {
  36. public String doInRedis(RedisConnection connection) throws DataAccessException {
  37. RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
  38. byte[] key = serializer.serialize(userId);
  39. byte[] value = connection.get(key);
  40. if (value == null) {
  41. return null;
  42. }
  43. String name = serializer.deserialize(value);
  44. return name;
  45. }
  46. });
  47. return result;
  48. }
  49. }

其它我不写了,跟我之前的文章好多反复的代码跟配置

springmvc+spring+jpa(hibernate)+redis+maven配置的更多相关文章

  1. Spring + SpringMVC + Druid + JPA(Hibernate impl) 给你一个稳妥的后端解决方案

    最近手头的工作不太繁重,自己试着倒腾了一套用开源框架组建的 JavaWeb 后端解决方案. 感觉还不错的样子,但实践和项目实战还是有很大的落差,这里只做抛砖引玉之用. 项目 git 地址:https: ...

  2. Spring Boot + Jpa(Hibernate) 架构基本配置

    本文转载自:https://blog.csdn.net/javahighness/article/details/53055149 1.基于springboot-1.4.0.RELEASE版本测试 2 ...

  3. SpringBoot + Jpa(Hibernate) 架构基本配置

    1.基于springboot-1.4.0.RELEASE版本测试 2.springBoot + Hibernate + Druid + Mysql + servlet(jsp) 一.maven的pom ...

  4. 【spring boot hibernate】hibernate命名策略spring.jpa.hibernate.naming-strategy不起作用

    对于 spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy hibernate命名策略设置之后 ...

  5. SpringMVC +Spring + MyBatis + Mysql + Redis(作为二级缓存) 配置

    转载:http://blog.csdn.net/xiadi934/article/details/50786293 项目环境: 在SpringMVC +Spring + MyBatis + MySQL ...

  6. Spring整合Hibernate,Druid(Maven)

    本文转载自:http://blog.csdn.net/lantazy/article/details/52495839 首先,说一下spring,spring有很好的整合能力,Web应用的各个层次都能 ...

  7. Spring Boot自定义Redis缓存配置,保存value格式JSON字符串

    Spring Boot自定义Redis缓存,保存格式JSON字符串 部分内容转自 https://blog.csdn.net/caojidasabi/article/details/83059642 ...

  8. Spring Boot 结合 Redis 序列化配置的一些问题

    前言 最近在学习Spring Boot结合Redis时看了一些网上的教程,发现这些教程要么比较老,要么不知道从哪抄得,运行起来有问题.这里分享一下我最新学到的写法 默认情况下,Spring 为我们提供 ...

  9. MAVEN配置及Spring Tool Suite的Maven配置

    1.下载Maven http://maven.apache.org/download.cgi 如图点击下载即可 2.Maven配置 2.1配置本地仓库 创建目录maven-repository如图所示 ...

随机推荐

  1. mysql 操作提示 1366 Incorrect string value

    一.报错说明 数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同:不相同则会引发MySQL1366错误. 二.产生原因 windows 安装MySql 的时候选择的是默认的编码,创建 ...

  2. Python笔记(十一)——数据抓取例子

    上班时候想看股票行情怎么办?试试这个小例子,5分钟拉去一次股票价格,预警: #coding=utf-8 import re import urllib2 import time import thre ...

  3. c++对象关系映射(ORM)框架

    ORM(Object Relational Mapping, 对象关系映射),用来将基于对象的数据结构映射到SQL的数据结构中,即将基于对象的数据映射到关系表中的字段,然后我们可以通过对象提供的接口来 ...

  4. Windows环境下使用强大的wget工具

    安装 下载[http://www.interlog.com/~tcharron/wgetwin.html] 解压到目录 比如我解压到D:\Tool\wget 添加wget环境变量,这样使用就更方便了, ...

  5. 利用JavaScript做无缝滚动

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...

  6. 自定义安装MS Office Project2007会出错

    作者:朱金灿 来源:http://blog.csdn.net/clever101 今天使用虚拟光驱文件自定义安装MSOffice Project2007,如下图: 然后总是出现一个错误: 从网上找来一 ...

  7. 使用Flask和Bootstrap构建博客系统(1) - 准备篇

    技术栈 macOS10.12.5 Python2.7.13 Bootstrap4.0.0-beta.2 virtualenv virtualenvwrapper 安装Python2.7.13 下载Bo ...

  8. OnLineML:时序数据挖掘

    关于时序分析: 我们跟随时间的脚步,试图解释现在.理解过去.甚至预测未来........ 原文链接:http://blog.sciencenet.cn/home.php?mod=space&u ...

  9. java连接AD域

    import org.springframework.boot.autoconfigure.SpringBootApplication; import java.util.Hashtable; imp ...

  10. spring cloud(三) config

    spring cloud 配置中心 config 搭建过程 1.搭建config-server 服务端 1.1. 新建boot工程 pom引入依赖 <!-- config配置中心 --> ...