gpt4 book ai didi

java - 在服务器内存中存储 java 对象

转载 作者:行者123 更新时间:2023-11-28 22:34:09 24 4
gpt4 key购买 nike

我有一个处理多个对象的 java web 项目(同样包含 n 个 A 类型的对象(例如时间和值)和 m 个 B 类型的对象(例如时间和字符串数组))。 Web 项目本身包含几个用于可视化的 servlet/jsps 以及一些用于数据操作的逻辑,目前在 Apache Tomcat 上运行。

是否可以在服务器运行时将整个数据存储在服务器(或大部分时间:本地)内存中?如果Tomcat关闭,数据可以存储在一个简单的文件中,没有限制。在服务器启动时,我只想读入文件并将对象写入内存。我如何启动 Tomcat 来执行此操作?

我不想使用额外数据库的原因是,我想提供一个包含 tomcat 的 zip 文件,包括已部署的 *.war 文件(因为我不希望我的教授卡在 tomcat 服务器设置中等等)

谢谢,克里斯

最佳答案

你可以实现 ServletContextListener并在 contextInitialized()contextDestroyed() 方法中编写从文件加载和保存到文件的逻辑,这两个方法分别在 webapp 的启动和关闭期间调用。

可以读写对象到磁盘,但是都需要实现java.io.Serializable第一的。这是一个Serialization tutorial带有代码示例。

也就是说,您是否考虑过嵌入式 数据库,这样您就不需要安装数据库服务器了?您可以使用 JDK6 的内置 JavaDB对于这个或其竞争对手HSQLDB .或者,如果它是纯键值对,那么您也可以只使用 java.util.Properties API ( tutorial here )。只需将属性文件放在类路径中的某处并使用 ClassLoader#getResourceAsStream()获取它的 InputStream,或者将它放在 WEB-INF 中的某处并使用 ServletContext#getResourceAsStream() .

关于java - 在服务器内存中存储 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1794320/

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