我在html" target="_blank">Internet上阅读的Java EE和Java SE类加载之间的区别在于:
在Java SE中,类加载器将类加载委托给其父类加载器,然后尝试加载类本身
但是,在Java EE中,类加载器首先尝试加载类本身,然后将该类的类加载委托给其父类加载器。
请确认我的理解。
另外,为什么要在Java EE中如此设计(保持这种优势的任何优势。)
这是我听到此链接的链接
那好吧
常见的应用程序具有3个标准的类加载器:
到目前为止,一切都很好。现在,这适用于 单独 运行且免费运行的 单个 应用程序。
但是,当您说 J2EE时会 怎样?您有 多个应用程序 在同一个地方运行,因此您必须找出一种防止它们 相互绊倒
的方法。这就是这些额外的类加载器的作用。
考虑一个服务器实例。有一个带有两个已部署EAR的JBoss。如果 应用程序之间的类冲突,
将会发生什么?他们在自己的特定上下文中可以接受,但总体上并不一致。
这些额外的类加载器以应用程序方式引入,以 确保它们之间的隔离 。 System-Classpath 下 的类加载器
只有在清单文件中为其子级之一指定的类时, 类加载器才 识别类。
在J2SE中,三个基本类加载器基于以下三个原则以父子关系工作:
Integer
,ArrayList
除其他)。这是您在问题中引用的内容: 类加载器将加载委派到层次结构的顶部,然后,如果某个类加载器的父级找不到它,则每个类加载器都会尝试加载该类,直到有人加载它为止。 否则:ClassNotFound。在Java SE中,类加载器将类加载委托给其父类加载器,然后尝试加载类本身。
没错,由于上述原理。
J2EE中没有确定的类加载器结构(供应商拥有“诗意的许可证”来实现它),但是他们有点遵循层次结构。在这种情况下, 系统类路径
类加载器将加载主应用程序:服务器。然后,由于 可见性原则 ,每个应用程序都可以使用服务器库(更具体地说是其类)。
在那儿,这些应用程序具有特定的类加载器结构,但总体而言,它们是 System-classpath类加载器的 不同 子 类
。每个应用程序都加载其相关和特定的类(应用程序和库)。
此处的负载不会传播到应用程序上下文之外的父级。为什么?因为如果 System-classpath类
加载器像往常一样加载应用程序,则由于可见性原理,每个应用程序的类对其他用户都是可见的,从而完全打破了它们之间的隔离。所以:
但是,在Java EE中,类加载器首先尝试加载类本身,然后将该类的类加载委托给其父类加载器。
这在一定程度上是正确的,但是我宁愿将此确认限制在应用程序的上下文中,而忽略了Java相关类,这些类确实是由顶级类加载器加载的。
长话短说:这不是一个简单的过程,但是我不会说J2EE处理与J2SE相反的类加载。
本文向大家介绍Java加密解密工具(适用于JavaSE/JavaEE/Android),包括了Java加密解密工具(适用于JavaSE/JavaEE/Android)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了一个适用于JavaSE/JavaEE/Android的Java加密解密工具,供大家学习,具体内容如下 以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。
我想了解如何使用Spring容器的ClassLoader。 下面是一个例子:部署一个包含所有必要的罐的WAR,以便在tomcat的网络容器中启动Spring容器。 我的问题是: 1。我认为Spring容器类本身是由web容器创建的WAR类加载器加载的,对吗 2。取消部署WAR时,spring容器加载的类[](java.lang.Class对象)是如何卸载的。spring本身有一个类加载器吗?还是使
我不确定我遇到的问题是概念问题还是技术问题,因为配置错误。 目标是在应用程序容器中托管的Java EE应用程序(特别是WildFly)和独立运行的Java SE应用程序之间发送双向消息,都使用标准JMS协议和主题。我认为这应该是可能的,只要他们都使用相同的经纪人和相同的主题。 因此,我有一个外部 Artemis 实例作为消息代理运行,并在 Java EE 应用程序的单独 Bean 中成功设置了生产
Tephra旨在构建一个稳定、高效、易于集群、快速扩展的JavaEE开发框架。目前,Tephra已经具备了以下特性: 提供类级别的热更新,但仅建议在需要快速修正严重BUG、并且无法立即进行全更新时使用。 提供全冗余方式的缓存,自动在每个节点间同步缓存数据,而每个节点都仅从本地内存中获取缓存数据,从而提供高效的执行效率,并且当部分节点宕机时仍旧能正常提供服务。当然,也允许使用Redis提供统一的中心
JBoss-javaee-specs 即 JBoss JavaEE Specs APIs。这个项目提供了一套完整 APIs 所需的依赖管理关系,且此依赖关系由 Java EE 平台规范定义的。 采用的命名规范如下: groupId: org.jboss.spec + the package name artifactId: Technology-api_SpecVersion_spec ve
我的servlet: 根据一个教程,当我在jsp页面中单击to按钮时,它将触发Servlet类中的doPost()方法。 但是,我一直得到HTTP状态404-/login.do错误 我有这个pom.xml
问题内容: 我正在编写一个使用GWT,Hibernate和Google Guice(带有GIN)的相当简单的应用程序。我想做的是使用外部管理器(例如在Spring中使用)来管理事务 ,而不是使用。我尝试使用,但似乎不适用于我。 我已经使用注入了EntityManager ,如下所示: 手动管理事务时,它似乎可以正常工作。我希望自动管理事务,也希望使用DBUnit进行自动化测试。 有人知道如何解决吗
我了解到CDI Beans可以在不同的基于Web应用程序的作用域中使用(只有在那里,对吗?)。例如:@quiestScoped、@SessionScoped等等。@SessionScoped在整个浏览器会话中保存托管bean中的数据。这在逻辑上听起来很安静,因为注释名称描述了它的功能。然而-现在我仔细查看了EJB会话bean。到目前为止,我知道这样一个人可能有三种状态之一:无国籍、有州和单身。对我