总结篇-Spring-data-jpa 框架
2017-05-28 15:19
246 查看
Java持久化规范:
JPA是java实体对象和关系型数据库建立器映射关系,通过面向对象编程思想操作关系型数据库的规范。
1.Spring 框架对JPA的支持
Spring框架对JPA提供的支持主要体现在几个方面:
(1)它是的JPA配置变得更加灵活。JPA规范要求,配置文件必须命名为persistence.xml,并存在与类路径下的META-INF目录中。该文件包含初始化JPA引擎的全部信息。
Spring提供的·LocalContainerEntityManagerFactoryBean类为我们提供了非常灵活的配置,可以让我们自定义配置文件的名称和修改配置文件的位置。
(2)最有意义的,Spring将entityManger(实体管理器)的创建和销毁,事务管理等代码抽取出来,并有Spring统一管理,开发者不需要关系这些,业务方法中只剩下持久层业务逻辑代码。
2.Spring-Data-JPA 框架
Spring-Data-JPA框架,主要针对的就是Spring唯一没有简化到的持久层业务逻辑代码,至此,开发者连仅剩的实现持久层业务逻辑的工作都省了,唯一要做的,就是生命持久层的接口,其他的都交给Spring Data JPA来帮我们完成。
2.1持久层接口继承Repository接口
该接口使用了泛型,需要为其提供两个类型,第一个为该接口处理的域对象类型,第二个为域对象的主键类型
例如·:
public interface UserRepository extends JpaRepository<User,String>{
}
注: 不需要编写UserRepository的实现类,因为框架会帮我们完成业务逻辑。
3.总结使用Spring Data JPA 进行持久层开发大致需要的几个步骤:
(1)声明持久层的接口,该接口继承Repository,Repository是一个标志性接口,不包含任何方法,Spring Data 提供了若干Repository子接口,不同的接口定义了常用的CRUD方法和分页相关的的方法。
(2)在接口中声明需要的业务方法,Spring Data 会帮我们生成其实现代码。
(3)在Spring配置文件中增加一行声明,让Spring为声明的接口创建代理对象。配置了<jpa:repository>后,Spring初始化容器时会扫描base-package指定的包目录及其子目录,为继承Repository接口的接口创建代理对象,b并将代理对象注册为Spring Bean,业务层便可以通过Spring自动封装的特性来直接使用该对象。
4.Spring-data-jpa的配置文件示例
配置文件中逐层引用,从中可以看出Spring-Data-JPA的工作流程,这里就不详细说了。
JPA是java实体对象和关系型数据库建立器映射关系,通过面向对象编程思想操作关系型数据库的规范。
1.Spring 框架对JPA的支持
Spring框架对JPA提供的支持主要体现在几个方面:
(1)它是的JPA配置变得更加灵活。JPA规范要求,配置文件必须命名为persistence.xml,并存在与类路径下的META-INF目录中。该文件包含初始化JPA引擎的全部信息。
Spring提供的·LocalContainerEntityManagerFactoryBean类为我们提供了非常灵活的配置,可以让我们自定义配置文件的名称和修改配置文件的位置。
(2)最有意义的,Spring将entityManger(实体管理器)的创建和销毁,事务管理等代码抽取出来,并有Spring统一管理,开发者不需要关系这些,业务方法中只剩下持久层业务逻辑代码。
2.Spring-Data-JPA 框架
Spring-Data-JPA框架,主要针对的就是Spring唯一没有简化到的持久层业务逻辑代码,至此,开发者连仅剩的实现持久层业务逻辑的工作都省了,唯一要做的,就是生命持久层的接口,其他的都交给Spring Data JPA来帮我们完成。
2.1持久层接口继承Repository接口
该接口使用了泛型,需要为其提供两个类型,第一个为该接口处理的域对象类型,第二个为域对象的主键类型
例如·:
public interface UserRepository extends JpaRepository<User,String>{
}
注: 不需要编写UserRepository的实现类,因为框架会帮我们完成业务逻辑。
3.总结使用Spring Data JPA 进行持久层开发大致需要的几个步骤:
(1)声明持久层的接口,该接口继承Repository,Repository是一个标志性接口,不包含任何方法,Spring Data 提供了若干Repository子接口,不同的接口定义了常用的CRUD方法和分页相关的的方法。
(2)在接口中声明需要的业务方法,Spring Data 会帮我们生成其实现代码。
(3)在Spring配置文件中增加一行声明,让Spring为声明的接口创建代理对象。配置了<jpa:repository>后,Spring初始化容器时会扫描base-package指定的包目录及其子目录,为继承Repository接口的接口创建代理对象,b并将代理对象注册为Spring Bean,业务层便可以通过Spring自动封装的特性来直接使用该对象。
4.Spring-data-jpa的配置文件示例
<!-- 配置jpa的entitymanagerFactory--> <bean id="entitymanagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceUnitName" value="lab"/> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/> </bean> <!-- 配置jpa的transaction事务管理器--> <bean id="transcationManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entitymanagerFactory"/> </bean> <!-- 启用事务注解器--> <tx:annotation-driven transaction-manager="transcationManager"/> <!-- 配置Spring Data JPA 自动扫描目录 把继承了 JpaRepository 接口的interface 实例化为一个Spring bean --> <jpa:repositories base-package="com.study.demo.repository" entity-manager-factory-ref="entitymanagerFactory" transaction-manager-ref="transcationManager"/> </beans>
配置文件中逐层引用,从中可以看出Spring-Data-JPA的工作流程,这里就不详细说了。
相关文章推荐
- spring + springMVC + spring Data + jpa + maven 项目框架搭建
- spring + springMVC + spring Data jpa + maven 项目框架搭建
- spring + springMVC + spring Data + jpa + maven +(Restful风格) 项目框架搭建(即sssp框架)
- 【SpringData】轻松愉快之玩转SpringData( 第5章 JpaSpecificationExecutor接口 第6章 课程总结 )
- Spring Data JPA应用总结
- spring4学习记录05-spring mvc实战之框架构建测试jpa借助spring-data实现自动化jpa
- 使用Spring Data JPA的坑点记录总结
- Spring-data-JPA查询方法的总结
- 基于maven的多框架和多视图融合技术(Struts1、Struts2、Spring、SpringMVC、Hibernate、Ibatis、MyBatis、Spring Data JPA、DWR)
- java(样品集成框架spring、spring mvc、spring data jpa、hibernate)
- Maven学习笔记(十)-Maven整合SSHSJ(Spring+SpringMVC+Hibernate+Spring Data JPA+JdbcTemplate)框架
- Spring+SpringMVC+SpingDataJPA(基于Hibernate)框架搭建
- 一篇总结的很好的Spring data jpa 文章,里面包含多种查询方式,可以结合api使用
- spring data jpa 框架在实体类中添加非数据库字段的属性
- SSH(进阶) SpringDataJPA + SpringMVC 快速搭建企业框架
- Spring-Data-JPA 错误总结
- eclipse 使用maven 搭建spring + springMVC + spring Data + jpa 框架
- JPA,spring data jpa和其他jpa框架的关系
- java框架整合例子(spring、spring mvc、spring data jpa、hibernate)
- springBoot入门总结(三)整合SpringDataJPA