需要实现在项目启动后加载数据表中的内容到ServletContext中方便调用,我试过用Listener,但是在里面取不到dao啊~~所以取不到数据,据说还有一种用hibernate二级缓存实现的方法等等 - - 各位帮帮忙 发表一下意见 谢谢

解决方案 »

  1.   

    以前也遇到过类似的问题,我就做了一个页面跳转,请求action,期待好办法
      

  2.   

    WebApplicationContext wc = WebApplicationContextUtils
    .getRequiredWebApplicationContext(sc);
    Dao dao=wc.getBean("dao");这样可以么?
      

  3.   


    取不到dao - - 谢谢
      

  4.   

    那个- - 在补充个问题...消息表 和 消息类型表  用一对多的关系在多的一方用下拉列表的方式修改类型(消息表中有type_id 外键) 结果会出现hibernate去修改类型表的主键的问题 - - 有遇到的大神没
      

  5.   


    异常说找不到BEAN,应该是spring的加载问题 - -
      

  6.   


    private ApplicationContext ac; @Override
     public void contextInitialized(ServletContextEvent sce) {
            ApplicationContext ac = WebApplicationContextUtils
                    .getWebApplicationContext(sce.getServletContext());
            MessageDao messageDao = (MessageDao) ac.getBean("MessageDao");
            List<Message> listMessage = messageDao.getAll();
            System.out.println("get size " + list.size());
        }
      

  7.   

    写一个数据操作集合类,把需要用到的dao作为静态属性,并在spring中注入,接着里面写一个监听容器的同步方法,该方法实现需要读取的数据。然后你在监听器里调用操作集合类里的同步方法就可以了。这样数据就会读取到内存中。
      

  8.   


    @Component 注解 实现 HibernateDao 接口
      

  9.   

    我是在配置文件中配置的dao,并且为单例。
      

  10.   

    已解决- -! 懒加载等于false=