java网站首页缓存的解决办法之一

最近在做的一个网站,首页需要分块加载数据,每一块都需要使用一个很耗时的查询方法。最后想到了一个首页缓存的方法。

即在后台java服务器脚本中维护一个application的变量(setAttribute("","")),该对象将每一块数据都作为一个对象参数保存,在服务器启动的时候就加载一次,再写一个timer计时器每天晚上定时更新一下就行了。参见代码:

维护的对象对应的首页类(获取的每一块数据都作为一个单独的属性):

[java]  view plain copy
  1. public class IndexItems {  
  2.     private ResultContent AllSubject;// 所有学科  
  3.     private ResultContent Physical;// 物理  
  4.     private ResultContent Chemistry;// 化学  
  5.     private ResultContent LifeScience;// 生命科学  
  6.     private ResultContent EnginMat;// 工程材料  
  7.     private ResultContent EarthScience;// 地球科学  
  8.     private ResultContent InformaScience;// 信息科学  
  9.     private ResultContent Manager;// 管理  
  10.     private ResultContent Medicine;// 医学  
  11.   
  12.     public synchronized ResultContent getAllSubject() {  
  13.   
  14.         return AllSubject;  
  15.     }  
  16.   
  17.     public synchronized ResultContent getPhysical() {  
  18.         return Physical;  
  19.     }  
  20.   
  21.     public synchronized ResultContent getChemistry() {  
  22.         return Chemistry;  
  23.     }  
  24.   
  25.     public synchronized ResultContent getLifeScience() {  
  26.         return LifeScience;  
  27.     }  
  28.   
  29.     public synchronized ResultContent getEnginMat() {  
  30.         return EnginMat;  
  31.     }  
  32.   
  33.     public synchronized ResultContent getEarthScience() {  
  34.         return EarthScience;  
  35.     }  
  36.   
  37.     public synchronized ResultContent getInformaScience() {  
  38.         return InformaScience;  
  39.     }  
  40.   
  41.     public synchronized ResultContent getManager() {  
  42.         return Manager;  
  43.     }  
  44.   
  45.     public synchronized ResultContent getMedicine() {  
  46.         return Medicine;  
  47.     }  
  48.   
  49.     // 获取一个首页对象,并解析成json字符串,将它保存在application里面以供调用  
  50.     public void SetApplication() {  
  51.         try {  
  52.             String limit = "5";  
  53.             String offset = "0";  
  54.             AllSubject = StaticFunc.getItemBySubject("[[]]", limit, offset);// 获取全部前几项  
  55.             MetadataEntry meta = new MetadataEntry();  
  56.             meta.key = "dc.subject";  
  57.             meta.value = "数理科学部";  
  58.             meta.language = null;  
  59.             // 转换为json  
  60.             ObjectMapper mapper = new ObjectMapper();  
  61.             String jsonStr = "[[]]";  
  62.             jsonStr = "[[" + mapper.writeValueAsString(meta) + 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值