开发者社区 问答 正文

tomcat启动时如何将字典表的数据加载到内存?:报错

系统使用的ssh框架,现在有些字典表是固定不变的,所以想每次启动tomcat时,将几个字典表直接加载到内存里,这样就不用频繁读取数据库了。

希望有经验的哥哥姐姐们,给点思路。  谢谢大家了!

展开
收起
kun坤 2020-06-07 14:08:59 880 分享 版权
1 条回答
写回答
取消 提交回答
  • 可以写个servlet 或者filter或者listener,然后在init里加载

    ######

    引用来自#2楼“红薯”的帖子

    可以写个servlet 或者filter或者listener,然后在init里加载

    我想再问下,比如我在servlet里面取到了字典表的数据,怎么放到内存里,放到application里面吗? 谢谢

    ######

    引用来自#3楼“nihao”的帖子

    引用来自#2楼“红薯”的帖子

    可以写个servlet 或者filter或者listener,然后在init里加载

    我想再问下,比如我在servlet里面取到了字典表的数据,怎么放到内存里,放到application里面吗? 谢谢

    放在哪都行,你也可以放在一个类的静态变量里,这样别的地方都可以访问到。

    ######

    恩 谢谢!   刚发现您是这个网站的站长,还这么乐于助人,希望以后能在这里成长。。。

    ######

    static code block

    ######

    引用来自#5楼“nihao”的帖子

    恩 谢谢!   刚发现您是这个网站的站长,还这么乐于助人,希望以后能在这里成长。。。

    站长是个好银...

    ######

    不需要这么麻烦。写个spring bean,实现InitializingBean接口.

    ######

    引用来自#6楼“laserdance”的帖子

    static code block

    除了 用 监听器 listener 在容器启动的时候加载,

    也可以写一个静态块,只加载一次,hibernate 读取配置文件的时候就是这么干的

    static {
        	try {
    			configuration.configure(configFile);
    			sessionFactory = configuration.buildSessionFactory();
    		} catch (Exception e) {
    			System.err
    					.println("%%%% Error Creating SessionFactory %%%%");
    			e.printStackTrace();
    		}
        }
    ######

    用Spring提供的init-method的功能来执行一个bean 子定义的初始化方法,这可以在一个bean的配置文件中通过init-method声明:
    <bean id="testBean" class="TestClass" init-method="initialize"/>

    2020-06-07 14:09:03
    赞同 展开评论