我已经在这个主题上做了大量的工作,但是我所能找到的一切都与数据库连接等有关。
我正在构建一个Web服务,该服务加载Shapefile并使用GeoTools库执行一些基于位置的时髦操作。我想要做的是一次加载Shapefile,获取Shapefile的所有“功能”,然后每次都可以检查该集合-注意实际上现在加载了很多shapefile。
我已经将基于地理位置的内容包装在一个类中,并在实例化该类时将shapefile加载到集合中。我的@WebService类检查myGeoClass是否已实例化,否则它将创建它并将文件加载到内存中。这些文件永远不会更改,因此我想在多个请求之间保留对象的相同实例,但是我添加了一些跟踪信息,并且似乎在每个请求中都创建了一个新实例。
有没有办法将单个实例保留在内存中,并在所有请求中共享?
干杯!
最佳答案
至少您可以使用静态变量。
如果它是一个Web应用程序,则可以将其设置为ServletContext的属性。
如果使用的是Java EE 6,则可以将类定义为托管bean @ApplicationScoped或Singleton