我有一个处理多个对象的java web项目(同样包含n个类型为A的对象(例如时间和值)和类型为B的m个对象(例如time和String数组)).Web项目本身包含几个用于可视化的servlet/jsps以及一些用于数据操作的逻辑,并且当前在Apache Tomcat上运行.
是否可以在服务器运行时将整个数据存储在服务器(或大多数时间:本地)内存中?如果Tomcat关闭,数据可以存储在一个简单的文件中,没有限制.在服务器启动时,我只想读入文件并将对象写入内存.我如何启动Tomcat这样做?
我不想使用额外数据库的原因是,我想提供一个包含tomcat的zip文件,包括已部署的*.war文件(因为我不希望我的教授陷入tomcat服务器设置等)
谢谢,ChrisH
您可以分别在webapp的启动和关闭期间调用和方法中实现ServletContextListener和编写从文件加载和保存到文件的逻辑.contextInitialized()contextDestroyed()
您可以读取和写入磁盘对象,但它们都需要先实现java.io.Serializable.这是一个包含代码示例的序列化教程.
也就是说,您是否考虑过嵌入式数据库,以便不需要安装数据库服务器?您可以将JDK6的内置JavaDB用于此竞争对手的HSQLDB.或者,如果它是纯键值对,那么您也可以使用java.util.PropertiesAPI(此处的教程).只需将属性文件放在类路径中的某个位置,然后使用它ClassLoader#getResourceAsStream()来获取InputStream它,或者将它放在某处WEB-INF并使用它ServletContext#getResourceAsStream().