有什么方法可以跨多个 JSP 页面共享 EmbeddedGraphDatabase 实例? 问题是,一旦您启动 tomcat 服务器并为特定的 Neo4j DB 实例化 EmbeddedGraphDatabase,如果您尝试为相同的实例化另一个 graphDB,数据库将保持锁定状态。
最佳答案
据我所知,EmbeddedGraphDatabase
是您的对象,您希望它的实例在应用程序的多个 JSP 页面中共享。
您需要将它的实例放入应用程序范围内,并且它将对您应用程序的所有类和 JSP 页面可见。
为此,您需要实现 ServletContextListener
接口(interface):
public class YourContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
EmbeddedGraphDatabase db = new EmbeddedGraphDatabase();
event.getServletContext().setAttribute("yourAttrName", db);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
event.getServletContext().removeAttribute("yourAttrName");
}
}
在web.xml中定义
<listener>
<listener-class>your.package.YourContextListener</listener-class>
</listener>
要使用它:
EmbeddedGraphDatabase db = getServletContext().getAttribute("yourAttrName");
希望这对您有所帮助。
关于jsp - 如何跨多个 JSP 页面共享 EmbeddedGraphDatabase 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970073/