有什么方法可以跨多个JSP页面共享EmbeddedGraphDatabase实例? 问题是,一旦你启动tomcat服务器并为特定的Neo4j数据库实例化EmbeddedGraphDatabase,如果你试图为同一个实例化另一个graphDB,数据库将保持锁定状态。
答案 0 :(得分:0)
据我所知,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");
希望这有帮助。