Java EE 程序员不写入文件

2022-09-03 16:24:00

今天有一个人告诉我,“Java EE程序员不写文件”。为什么我不能从 Java EE 容器(例如从 JBoss)中写入文件?怎么了?


答案 1

您应该在 Java EE 容器本身中执行所有操作:您无法确定自己是否对文件系统具有任何一致的访问权限。造成这种情况的原因有很多,最明显的是,在容器中运行的应用程序将具有:

  • 不确定 EJB 的任何后续调用是否位于具有对相同文件/文件系统的访问权限的同一物理服务器上(例如,在集群时)
  • 没有相互干扰的可能性(多个应用程序试图写入同一文件)
  • 没有安全问题(一个应用程序写入另一个应用程序可以读取的机密数据)

您还应该假设您不应该

  • 创建您自己的线程(容器将为您管理此线程;如果您创建自己的线程,则可能会使CPU时间容器中的其他应用程序挨饿)
  • 使用套接字 IO(也存在安全问题)

答案 2

最好的页面是这个:http://www.oracle.com/technetwork/java/restrictions-142267.html

它详细介绍了对 Java EE 编程模型的限制。

除了上面提到的那一点,安全性,可移植性,集群,线程还考虑了事务和错误处理(文件系统不是事务性的)。

但是,JVM中没有发生黑魔法,您可以创建文件(只要您拥有相应的权限),使用静态变量,并在知道自己在做什么的情况下创建线程。

最好花点时间了解为什么通常建议使用这些限制,而不是为了合规而跳转并编写JCA连接器。


推荐