如何使用Java(Glassfish)SOAP请求在多个请求之间保持对象实例化



我已经围绕这个主题做了很多研究,但我能找到的都与数据库连接等有关。

我正在构建一个web服务,它加载一个Shapefile,并使用GeoTools库来做一些基于位置的时髦事情。我想做的是加载一次形状文件,在内存中获取形状文件的所有"功能",然后每次都可以对照该集合进行检查——注意,现在实际上加载了很多形状文件。

我已经将基于Geo的东西封装在一个类中,当类实例化时,它会将shapefile加载到一个集合中。我的@WebService类检查myGeoClass是否实例化,否则它会创建它并将文件加载到内存中。这些文件永远不会更改,所以我想在多个请求之间保留对象的同一实例,但我在中添加了一些跟踪,它似乎在中为每个请求创建一个新实例。

有没有一种方法可以将单个实例保存在内存中,并在所有请求中共享?

干杯!

至少可以使用一个静态变量。

如果它是一个web应用程序,那么您可以将其设置为Servlet上下文的一个属性。

如果您使用的是Java EE 6,那么您可以将类定义为托管bean@ApplicationScoped或Singleton

最新更新