1 2 3 4 5 6 7 下一页 2. 在系统启动的时候,把所有的资源load到内存作为缓存 由于资源信息对于每个项目来说,相对固定,所以我们可以将他们在系统启动的时候就load到内存作为缓存。这里做法很多,我给出的示例是将资源的存放在ServletContext中。 Java代码 public class ServletContextLoaderListener implements ServletContextListener { /* (non-Javadoc) * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent) */ public void contextInitialized(ServletContextEvent servletContextEvent) { ServletContext servletContext = servletContextEvent.getServletContext(); SecurityManager securityManager = this.getSecurityManager(servletContext); Map<String, String> urlAuthorities = securityManager.loadUrlAuthorities(); servletContext.setAttribute("urlAuthorities", urlAuthorities); } /* (non-Javadoc) * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent) */ public void contextDestroyed(ServletContextEvent servletContextEvent) { servletContextEvent.getServletContext().removeAttribute("urlAuthorities"); } /** * Get SecurityManager from ApplicationContext * * @param servletContext * @return */ protected SecurityManager getSecurityManager(ServletContext servletContext) { return (SecurityManager) WebApplicationContextUtils.getWebApplicationContext(servletContext).getBean("securityManager"); } }
public class ServletContextLoaderListener implements ServletContextListener {
/* (non-Javadoc) * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent) */ public void contextInitialized(ServletContextEvent servletContextEvent) { ServletContext servletContext = servletContextEvent.getServletContext(); SecurityManager securityManager = this.getSecurityManager(servletContext); Map<String, String> urlAuthorities = securityManager.loadUrlAuthorities(); servletContext.setAttribute("urlAuthorities", urlAuthorities); }
/* (non-Javadoc) * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent) */ public void contextDestroyed(ServletContextEvent servletContextEvent) { servletContextEvent.getServletContext().removeAttribute("urlAuthorities"); }
/** * Get SecurityManager from ApplicationContext * * @param servletContext * @return */ protected SecurityManager getSecurityManager(ServletContext servletContext) { return (SecurityManager) WebApplicationContextUtils.getWebApplicationContext(servletContext).getBean("securityManager"); }
}
(责任编辑:admin) |