我现在网站的设置项保存在数据库中,如注册会员数,文章数,等,效率低,想缓存起来,不知道是缓存在ServletContext的setAttribute中 还是 JavaBean里的静态变量中,你们都是怎么做的,能给个思路吗?
疑惑:
1.如果缓存在JavaBean里,其他JavaBean调用缓存很方便,但好像不太稳定吧,有时可能会被垃圾回收,尤其是重启服务器后,有时被回收,有时又不被回收,不好控制。
2.如果缓存在ServletContext的setAttribute中,JavaBean不能直接调用它,是吗?

解决方案 »

  1.   

    一般都是用static HashMap,在服务启动的时候把网站的参数放进去。
      

  2.   

    这个static HashMap保存在哪里,ServletContext的setAttribute中 还是 JavaBean里的静态变量中
      

  3.   

    1、被垃圾回收,是没有其他的bean调用的时候才会出现,你可以用工厂模式,如果没有,就创建。2、一样可以调用,把包引进去就行。
      

  4.   

    把 static HashMap 是一个javaBean的属性,可以把HashMap放入ServletContext中。
      

  5.   

    你可以使用开源缓存啊,oscache,eccache等等。如果不想用,你可以把你的javabean写成单例模式
      

  6.   

    如果你的参数是一一直不变的,你可以把他放入ServletContext中,但是有过参数是变化的最好不要放。
      

  7.   

    1.只是没有其他的bean调用的时候才被垃圾回收吗?那只有servlet调用,回收吗?servlet中的import导入 和bean的 import导入算调用吗?只有servlet中 import 这个bean,会被回收吗?
    2.把包引进去怎么调用ServletContext的setAttribute