1
有沒有什麼辦法可以在多個JSP頁面上共享EmbeddedGraphDatabase實例? 問題是,一旦啓動tomcat服務器併爲特定的Neo4j DB實例化EmbeddedGraphDatabase,如果您嘗試實例化另一個graphDB,數據庫將保持鎖定狀態。如何跨多個JSP頁面共享EmbeddedGraphDatabase實例?
有沒有什麼辦法可以在多個JSP頁面上共享EmbeddedGraphDatabase實例? 問題是,一旦啓動tomcat服務器併爲特定的Neo4j DB實例化EmbeddedGraphDatabase,如果您嘗試實例化另一個graphDB,數據庫將保持鎖定狀態。如何跨多個JSP頁面共享EmbeddedGraphDatabase實例?
據我所知,EmbeddedGraphDatabase
是你的對象,你希望它的實例在應用程序的多個JSP頁面中共享。
您需要將它的實例放到應用程序範圍中,並且它將對所有應用程序的類和JSP頁面可見。
要做到這一點,你需要實現ServletContextListener
接口:
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");
希望這有助於。