OpenEntityManagerInView和Hibernate的OpenSessionInView一样,服务端在接收到一个请求的时候开启EntityManager,在请求结束的时候才去关闭这个EntityManager,和JpaDaoSupport一起可以很好地工作。
使用OpenEntityManagerInView可以解决JPA延迟加载出现的LazyInitialize异常。如果不使用JPA的OpenEntityManagerInViewFilter,那么当使用玩getJpaTemplate().persist()或者remove()方法后,Spring就会自动关闭EntityManager,因此,你使用了延迟加载的对象加载属性的时候将会出现LazyInitialize异常。
OpenEntityManagerInViewFilter会把连接放到线程池里面,不是马上关闭。因此,在请求的过程当中,我们可以随时使用这个EntityManager。当请求结束之后才会关闭这个EntityManager。
不过在高并发的时候,EntityManager的生命周期会比较长(因为请求开始到请求结束这段时间长),EntityManager不会立刻关闭,导致连接池连接数占用的问题。因此高并发的系统最好不要使用OpenEntityManagerInView模式。
配置如下,在web.xml里面添加一个filter:
<filter>
<filter-name>jpaFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>jpaFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效...通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理大数据量的应用场景非常有价值。
该手册主要讲解如何使用SpringBlade开发微服务系统平台,涵盖了从环境准备到生产部署的所有步骤。 环境准备 在开始使用SpringBlade之前,需要安装Nacos、Sentinel、Seata、Redis等必要的组件。同时,也需要安装...
Spring 实战包括使用 Spring Boot 构建 Web 应用程序、使用 Spring Data 构建数据访问层、使用 Spring Security 构建安全应用程序等。 10. Spring 生命周期 Spring 生命周期是指 Spring 应用程序从启动到关闭的...
本课程将会以项目功能为驱动 以功能为载体依次从浅入深的讲解目前Java Web开发中使用的最新技术 课程中除了数据增删改查这种传统功能外 还涉及到权限设计 树形菜单 站内聊天 报表开发等实用的设计方法或技术实现 ...
使用Spring Boot的小型诊所信息系统,毕业设计Java版.zip使用Spring Boot的小型诊所信息系统,毕业设计Java版.zip使用Spring Boot的小型诊所信息系统,毕业设计Java版.zip使用Spring Boot的小型诊所信息系统,毕业...
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
为了将 Spring Integration 和 Spring WS 整合在一起,我们需要使用 Spring Integration 的 Web 服务 gateway。这个 gateway 允许我们将 Web 服务和 Spring Integration 集成在一起,使得我们可以使用 Spring ...
play20-spring-demo, 在播放 2.0应用程序中使用 spring 在播放 2.0应用程序中使用 spring的这是一个简单的应用程序演示如何将播放 2.0应用程序组件与 Spring Framework 应用程序集成。请注意,同样的技术可以应用到...
使用 Spring 2.5 基于注解驱动的 Spring MVC 详解 本文将介绍 Spring 2.5 新增的 Spring MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。 Spring MVC 注解驱动 在 Spring 2.5 中,...
Spring Cloud Config使用Oracle数据库作为后端配置存储 Spring Cloud Config + Spring Cloud Bus + kafka实现配置中心 SpringCloud微服务远程调用组件Feign的使用 springcloud-circuitbreaker.zip springcloud-...
使用spring batch需要在数据库建立的几个表——建表语句(BATCH_JOB_INSTANCE、BATCH_JOB_EXECUTION、BATCH_JOB_EXECUTION_CONTEXT、`BATCH_JOB_EXECUTION_PARAMS` 、`BATCH_JOB_EXECUTION_SEQ` 、`BATCH_JOB_SEQ` ...
使用Spring的JdbcTemplate实现分页功能
Spring Cloud Context 提供了 ApplicationContext 的实用程序和特殊服务,而 Spring Cloud Commons 则是一组在不同的 Spring Cloud 实现中使用的抽象和常用类。 在使用 Spring Cloud 时,需要注意到由于“非法密钥...
IntelliJ IDEA是一款广受欢迎的Java开发集成环境,它提供了丰富的功能来提升开发效率。Spring Assistant是专门为IntelliJ IDEA设计的...如果你是Spring框架的使用者,安装并熟练使用这个插件将极大地提升你的开发体验。
该项目使用的是Spring 4.0.5版本,这是一个稳定且广泛使用的版本。通过Spring MVC,开发者可以将业务逻辑、视图和控制器分离,使代码结构更加清晰。Spring JDBC则提供了模板方法和事务管理,使得数据库操作变得更加...
核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 spring boot项目是使用spring boot + thymeleaf 开发个人博客项目
在Spring 4.2.0中,开发者可以使用JDK 1.8的Lambda表达式来编写简洁的回调函数,特别是在使用Spring的事件监听或者AOP切面时。此外,Stream API的引入使得集合操作变得更加高效和简洁,尤其在数据过滤、转换和聚合...
spring-boot-helloWorld:spring-boot的helloWorld版本 spring-boot-mybaits-annotation:注解版本 spring-boot-mybaits-xml:xml配置版本 ...spring-boot-admin-simple:Spring Boot Admin 的使用示例
一般使用mybatis的环境,大多都是别人已经配置...我文章中的方法不基于spring,一般很少会在真实项目中直接使用。我把我的搭建过程记录下来给有用的人吧。 https://blog.csdn.net/lxyoucan/article/details/126162493
本文主要介绍了如何使用 Eclipse 搭建 Spring 开发环境,包括软件准备、软件安装和 Spring 示例三个部分。 一、软件准备 要搭建 Spring 开发环境,需要准备三个软件:Eclipse、Spring IDE 和 Spring Framework。...