gpt4 book ai didi

java - 使用 Wildly Ejb 实现的文件操作

转载 作者:行者123 更新时间:2023-11-29 03:05:33 25 4
gpt4 key购买 nike

我想在 stateless EJB 方法中进行一些文件操作(复制)。我知道不建议这样做。但对于一些特殊的 EJB 实现来说,这是可能的。 Wildfly 最好的东西是什么?

编辑 一些令人不安的旧链接:

"Sun blueprint: EJB Restrictions"

EJB Bad Practices: Use of Java I/O

Stackoverflow

最佳答案

What is the best thing for Wildfly ?

只是在做文件操作(认真)。这并不是说安装了安全管理器来阻止您这样做。

无状态 EJB 与 Java EE 中 bean 中的许多其他类型的方法没有什么不同。并非像某些人认为的那样,它在 EJB 方法中是不允许的,但在 CDI bean 方法中是允许的。事实并非如此。

那里有一些旧信息,其中规范说“不允许 EJB”。但实际的意思是不允许 Java EE。当时 EJB 被视为等同于 Java EE,因此这就是这种广泛传播的混淆的根源。

后来这个神话开始了它自己的生活,人们梦想着在 Servlet 中允许执行 IO 而不是从 EJB 执行 IO 的场景,因此他们设计了各种疯狂的架构来委托(delegate) IO(或线程,另一个最喜欢的)从 EJB 到 Servlet。绝对可笑!

限制(如上所述,旨在针对整个 Java EE,而不仅仅是 EJB)也过于急切。根本没有理由绝对禁止它。

您引用的一些答案是更具追溯力的原因。人们只是为规则编造理由,以某种方式为他们的世界辩护,即使理由和规则不匹配。

因此,规则已从 EJB 规范中删除

没错,在当前的 EJB 规范中,您将不会再发现禁止使用来自 EJB 的 IO(再说一次,这绝不意味着说“EJB”,而应该读作“Java EE”)。

参见:

当然,与许多事情一样,您在使用 IO 时可能需要谨慎,也可能不需要谨慎,但这与 Java EE 或 EJB 完全无关,几乎适用于任何应用程序,而且更依赖于 IO 的种类、您正在编写的应用程序类型以及您的情况。

两个小的极端例子:

您自己的个人 Java EE 应用程序,您是您在家中安装在树莓派上的唯一开发人员,并且在启动时从外部位置读取一个小配置文件 -> 几乎总是没问题。

大型集群企业应用程序由许多不同的团队开发,单独集成,单独部署,高度事务性,想要将临时数据写入文件系统,但在事务结束时必须再次清理 -> 可能不是一个好主意.

在这两者之间实际上是无限量的变化。例如,我们有一个更大的企业应用程序,它以非常可控和特定的方式从单例中对外部文件夹进行 IO。该应用程序在高负载下为数百万用户提供服务,并且 IO 从未出现过问题。因此,即使是“企业”和“交易”也不一定意味着“无 IO”。这真的取决于。

关于java - 使用 Wildly Ejb 实现的文件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com