权限之缓存

该博客讨论了如何将几乎不变的菜单、按钮等权限资源缓存到application中以提高程序效率。在Tomcat启动时,系统会自动加载用户授权资源和所有系统资源到缓存,以此提升性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于我们的菜单,按钮等这些资源,系统一旦确定几乎是确定不变的。在这样的情况下,我们完全可以把这些资源放入到缓存中,提高程序的效率。

我们这里采用的是,当Tomcat一启动,就会把用户的授权资源和系统所有的资源放入到application缓存中。

核心代码如下:

/**
 * 加载菜放入到application全局缓存中,当Tomcat启动时就加载上
 *注意:在web.xml中配置监听器,此时tomcat通过反射创建监听器,而用的并不是spring中的。
 * @author V-HUXJ
 *
 */
publicclass InitListener implements ServletContextListener {
 
//获取容器与先关的service对象
publicvoid contextInitialized(ServletContextEvent sc) {
//获取privilegeService对象
ApplicationContextac=WebApplicationContextUtils.getWebApplicationContext(sc.getServletContext());
PrivilegeServiceprivilegeService=(PrivilegeService)ac.getBean("privilegeServiceImpl");
 
//1.准备数据:topPrivileges
List<Privilege>topPrivileges=privilegeService.findTopPrivilege();
//放入到application
sc.getServletContext().setAttribute("topPrivileges",topPrivileges);
System.out.println("------------->topPrivileges已经准备数据完毕--------------------->");
 
 
//2.准allPriliveges备数据
Collection<String>allPrilivegeUrls=privilegeService.getAllPrivilegeUrls();
sc.getServletContext().setAttribute("allPrivilegeUrls",allPrilivegeUrls);
System.out.println("------------->allPriliveges已经准备数据完毕--------------------->");
}
publicvoid contextDestroyed(ServletContextEvent se) {
}
}

Web.xml:

<!--
用于做初始化工作的监听器,一定要配置到Spring的ContextLoaderListener之后,因为要用到Spring的容器对象
-->
<listener>
<listener-class>cn.itcast.oa.util.InitListener</listener-class>
</listener>
Tomcat启动,就会缓存到我们的资源。

 

总结:

当那些几乎不变的东西,不妨我们放入到我们的缓存,兴许它真的可以将我们的性能提升不少。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值