`
你是救世主
  • 浏览: 123712 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在WEB容器中获取持久化上下文

阅读更多

http://java.chinaitlab.com/advance/756728_3.html

 

 

 

 

   这样注入进来的EntityManager完全由容器管理,不要做任何EntityManager相关的工作.但是一切就这样完美了吗? 当然不是,和EJB容器不同的是,相当于有状态会话BEAN的Servlet是多线程服务的,一个实例变量的EntityManager 完全可能会被多个线程同时访问而出现极大的安全性隐患.那么这样的注入是否有意义呢?  当然有意义,一种情况是你可以在ServletContextListener这样的线程安全模块中注入,另一种情况只要你能控制不让多个线程同时访问一个实例变量的EntityManager,那么你就可以享受容器管理带来的方便性.

     但是任何事物都有两面性,如果你要获取方便,就要牺牲应用范围的控制和性能,要让多个线程不同时访问一个实例变量EntityManager,最终还是要进行同步或互斥.即一个线程使用变量EntityManager时其它线程都要等待.如果能在线程的local方法中(doXXX或父类的service方法中)获取由容器管理的EntityManager, 那将会大大提高程序的性能.  "容器管理"的意思,其实就是容器产生了一些对象,你只需要拿来使用,不需要负责它的产生和销毁,关键是容器产生了这样的对象后你如何"拿到".通过注入只能注入成实例字段,那么在线程方法中,可能通过JNDI 来即时获取"容器中的EntityManager".(实事上,只要改一下容器实现的源码,还可以通过在service方法中获取ServletContext对象来动态即时注入,但这对于普通程序员是做不到的).

分享到:
评论

相关推荐

    tomcat容器 实现session共享案例

    3. **配置SessionManager**:在每个Tomcat服务器的应用上下文(`context.xml`)文件中,配置`Manager`元素。使用`org.apache.catalina.session.PersistentManager`或类似的第三方实现,如`org.springframework....

    主流应用服务器对webContainer的配置对比分析new.doc

    会话配置允许调整会话持久化和复制策略,异步请求分派用于处理高并发场景,传输链配置涉及网络层优化,而定制属性可以适应特定的企业需求。Web服务器配置则包括SSL证书、虚拟主机等高级设置。Web模块属性,如上下文...

    shiro和web项目整合代码下载

    在Spring配置中可以启用会话DAO,以便持久化会话信息。 7. **启动Shiro**:在Spring的初始化方法中启动Shiro,例如使用`@PostConstruct`注解的方法。 8. **测试与调试**:编写单元测试和集成测试,确保Shiro的认证...

    Net.WebApi_JWT.zip

    在本项目中,SQL Server作为数据存储平台,与EF结合,提供数据持久化支持。 这个压缩包文件可能包含了实现上述功能的代码示例,包括API控制器、Swagger配置、JWT认证中间件、Autofac的注册配置、数据库上下文和领域...

    The Java™ Persistence API

    通过对实体、持久化单元和持久化上下文的理解,开发者可以更高效地利用 JPA 来管理应用程序中的数据。此外,JPA 还支持事务管理、线程模型注入等功能,进一步增强了其在复杂 Web 应用场景下的可用性。

    JPA核心知识总结

    扩展的`EntityManager`则与有状态会话bean绑定,保持持久化上下文直至bean被删除。 ### 结论 JPA是Java开发中强大的数据持久化工具,通过面向对象的方式简化了数据库操作。理解和掌握JPA的核心概念,如实体、实体...

    Java Web程序设计-1期 项目库_单元案例_Application与Cookie对象教学案例.doc

    Application对象,也称为ServletContext对象,它代表了整个Web应用程序的上下文。它在整个Web应用程序的生命周期内都存在,不局限于单个用户的会话。在上述案例中,我们看到了如何使用Application对象来读写属性值...

    spring webflow reference,

    - **流程管理的持久化上下文传播**:支持在不同HTTP请求间传播持久化上下文。 - **Portlet 2.0资源请求支持**:增强了对Portlet 2.0的支持。 - **自定义对话管理器**:允许开发者自定义对话生命周期的管理机制。 - *...

    web项目整合spring

    在这个过程中,`applicationContext.xml`文件扮演着至关重要的角色,它是Spring应用上下文的配置文件,定义了bean的创建、依赖关系以及服务的配置。 首先,让我们了解Spring框架的基本概念。Spring是一个开源的Java...

    Java Web 最新认证

    学习实体、持久化上下文、查询语言(HQL)是JPA的重点。 7. **框架应用**:Spring MVC或Struts等框架极大地简化了Java Web开发。了解这些框架的基本原理、配置和使用方式,可以帮助你更高效地开发应用。 8. **安全与...

    spring-webflow

    - **conversationScope**:会话作用域,支持会话间的持久化。 - **requestParameters**:访问请求参数。 - **currentEvent**:当前事件的上下文。 - **currentUser**:当前登录的用户。 - **messageContext**:消息...

    图书:Spring Web流程2之Web开发

    2. **状态持久化**:SWF自动处理了会话状态的保存和恢复,无论用户是在流程中中断还是在多个请求之间跳转,都能保持一致的用户体验。 3. **模型绑定**:SWF支持模型对象与表单字段的自动绑定,简化了数据验证和转换...

    Apache Geronimo配置文件geronimo-web.xml各个标签的讲解

    - `<context-root>`:设置Web应用的上下文根,即在URL中应用的路径部分。 - `<work-dir>`:指定Web应用的工作目录,用于存储临时文件和编译后的JSP页面。 - `<naming:web-container>`:定义Web容器的配置,包括安全...

    JAVAEE web 作业

    学生应了解实体类、持久化上下文和查询语言(JPQL)。 9. **JSF(JavaServer Faces)**:一种用于构建用户界面的JavaEE技术,可以简化开发过程。尽管现在不那么流行,但理解其基本原理仍然有益。 10. **Web容器**...

    WEB SSH框架搭建

    3. **配置web.xml**:配置Struts的ActionServlet和Spring的DispatcherServlet,以及初始化Spring上下文。 4. **配置struts-config.xml**:定义Action、ActionMapping和Form Bean。 5. **配置spring-beans.xml**:...

    Architecting Modern Web Applications with ASP.NET Core and Azure.pdf

    持久性无知(Persistence Ignorance)和有界上下文(Bounded Contexts)的概念在书中也有提及。持久性无知是一种设计原则,它使得代码不依赖于具体的持久性技术(如数据库),从而使得代码更具有可移植性和可测试性...

    jboss内核(能运行web程序)

    3. **服务支持**:JBoss内核支持多种Java EE服务,如JNDI(Java Naming and Directory Interface)、JTA(Java Transaction API)和JPA(Java Persistence API),为Web应用程序提供数据持久化、事务处理和目录服务...

    ejb分离部署web工程可能要用到的包

    1. **EJB规范相关的JAR**:如`ejb3-persistence.jar`,它包含了EJB 3.x规范中的持久化API;`jboss-ejb3-api_3.2_spec.jar`,提供了EJB 3.2规范的接口定义。 2. **JBoss运行时库**:比如`jboss-all-client.jar`,它...

    基于Java web SSH框架的自动化办公系统(源码+数据库).zip

    2. **Spring**:是应用上下文和依赖注入(DI)容器,负责管理应用程序中的对象及其关系。Spring不仅支持DI,还提供了AOP(面向切面编程),用于实现如日志、事务管理等横切关注点。此外,Spring还整合了其他框架,如...

Global site tag (gtag.js) - Google Analytics