如何在不重启tomcat的情况下,把已经改变的文件内容更新到静态变量中?

如何在不重启tomcat的情况下,把已经改变的文件内容更新到静态变量中?

问题描述:

是这样的,在我的应用里,有一个违禁词列表的纯文本文件,里面就是每一行是一个违禁词。然后有一个类包含一个静态变量和一段静态代码,静态代码的作用是读入违禁词列表文件中的所有违禁词到这个静态变量中。这样,以后再判断违禁词的时候,所有违禁词都常驻在内存里了。但是,现在有个问题来了:我发现在tomcat启动以后,如果我改变这个违禁词列表的纯文本文件,并不能生效,那个类的静态变量里的违禁词还是以前的文件里的,除非重启tomcat。请问有什么办法能不重启tomcat吗?

PS:小弟的公司最近要做tomcat的集群配置,请问国内最专业的tomcat的论坛或社区是哪里?因为没人带,一切都要靠我自己摸索,而我从没有tomcat的集群配置经验,甚至连tomcat的性能调优都没怎么接触过,所以有点担心。。。想找个大牛带带,呵呵。

1、建议使用数据库维护违禁词列表

2、编写一个监视器(说白了,就是起一条线程监视文件),当纯文本的MD5值或者文件大小发生变化时,重新载入违禁词列表;
3、当修改违禁词列表文件后,使用JMX后门程序手动刷新内存中的违禁词列表。
上述第2条和第3条可任选其一

自己在页面上写个操作,通过点击按钮,重新读取文件到内存里,这就跟配置缓存策略差不多了,

为什么不把禁用诗放到数据库里呢,这样将来也好维护,还能分类等

最好的TOMCAT相关资料还是到官方文档里找吧,要做到集群这种程度,不看点官方东西说不过去了

定时去看下这个文件的大小有没有变化,变化了的话更新内存中的数据