SpringData使用与整合

整合源码:链接: https://pan.baidu.com/s/1_dDEEJoqaBTfXs2ZWsvKvA 提取码: cp6s(jar包自行寻找)

author:SimpleWu

time: 2018-10-06 20:51

1.SpringData概述

Spring Data是Spring的一个子项目,主要用于简化数据库访问,支持NoSQL和关系数据存储,主要目标是使数据库的访问变得方便快捷。其中,所支持的NoSQL存储有MongoDB (文档数据库)、Neo4j(图形数据库)、Redis(键/值存储)和Hbase(列族数据库),所支持的关系数据存储技术有JDBC和JPA。JPA Spring Data致力于减少数据访问层(DAO)的开发量。开发者唯一要做的是声明持久层的接口和方法,其他交给Spring Data JPA来完成。

2.SpringData实现对数据库的访问

Spring整合JPA

在Spring配置文件中配置SpringData让 Spring 为声明的接口创建代理对象。配置了 后,Spring 初始化容器时将会扫描 base-package 指定的包目录及其子目录,为继承 Repository 或其子接口的接口创建代理对象,并将代理对象注册为 Spring Bean,业务层便可以通过 Spring 自动封装的特性来直接使用该对象。

声明持久层的接口,该接口继承 Repository,Repository 是一个标记型接口,它不包含任何方法,如必要,Spring Data 可实现 Repository 其他子接口,其中定义了一些常用的增删改查,以及分页相关的方法。

在接口中声明需要的方法。Spring Data 将根据给定的策略(具体策略稍后讲解)来为其生成实现代码。

3.SpringData环境搭建

1.导包(Spring,Hibernate,Mysql,ehcache,c3p0,aspect)

2.首先使用Spring整合JPA(见JPA整合案例)

1)db.properties

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/jpa jdbc.user=root jdbc.password=root

2)applicationContext.xml(copy注意包位置)

<!-- 引入外部资源文件 --> <context:property-placeholder location="classpath:db.properties" /> <!-- 配置数据源 --> <bean> <property value="${jdbc.user}" /> <property value="${jdbc.password}" /> <property value="${jdbc.driver}" /> <property value="${jdbc.url}" /> <!-- 队列中的最小连接数 --> <property value="15"></property> <!-- 队列中的最大连接数 --> <property value="25"></property> <!-- 当连接耗尽时创建的连接数 --> <property value="15"></property> <!-- 等待时间 --> <property value="10000"></property> <!-- 初始化连接数 --> <property value="20"></property> <!-- 最大空闲时间,超出时间连接将被丢弃 --> <property value="20"></property> <!-- 每隔60秒检测空闲连接 --> <property value="60000"></property> </bean> <!-- 配置entityManagerFactory --> <bean> <!-- 设置数据源 --> <property ref="dataSource" /> <!-- jpa注解所在的包 --> <property value="com.simple.springdata.entitys" /> <!-- 配置jpa提供商的适配器,可以通过内部bean的方式类配置 --> <property> <bean></bean> </property> <!-- 配置JPA的基本属性 --> <property> <!-- 配置jpa基本属性 --> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <!-- 配置二级缓存 --> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.region.factory_class"> org.hibernate.cache.ehcache.EhCacheRegionFactory </prop> <prop key="hibernate.cache.use_query_cache">true</prop> </props> </property> </bean> <!-- 配置事务管理器 --> <bean> <property ref="entityManagerFactory" /> </bean> <!-- 配置支持注解的事务 --> <tx:annotation-driven transaction-manager="txManager" /> <!-- 配置自动扫描的包 --> <context:component-scan base-package="com.simple.springdata"> <!-- 除了@Controller修饰的全部都要 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan>

3.在Spring(applicationContext)XML配置下增加SpringDataJPA的支持

​ 1)entity-manager-factory-ref: 引用的是生成EntityManager的工厂

​ 2)transaction-manager-ref:需要对事物管理进行引用

<!-- 5、配置SpringData --> <jpa:repositories base-package="com.simple.springdata.dao" entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="txManager"></jpa:repositories>

4.添加Dao层接口,这个接口需要实现Repository。Repository是一个泛型接口Repository<要处理的类型,主键类型>。

5.在Dao层定义方法即可,方法是有命名规范的所以说是不能够随便乱写名字。

package com.simple.springdata.service; import org.springframework.transaction.annotation.Transactional; import com.simple.springdata.entitys.Employee; public interface EmployeeService { /** * 保存员工方法 */ @Transactional Employee save(Employee employee); }

这样就已经与我们SpringData已经与我们Spring整合完毕了。

4.继续整合SpringMVC

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgsff.html