隨筆-26  評論-44  文章-20  trackbacks-0
          我在普通類的main方法中調用bean:
          Resource resource = new ClassPathResource("applicationContext.xml");
          BeanFactory factory = new XmlBeanFactory(resource);
          for(int i=1;i<5;i++){
                    DB dbDAO = (DB)factory.getBean("dbDAO");
                    System.out.println(dbDAO);
                }
          每次執行程序(不停的調用main方法,不只是只看一次循環!)都是相同的引用:
          com.yijia_ctgu.DB.DB@12a54f9
          com.yijia_ctgu.DB.DB@12a54f9
          com.yijia_ctgu.DB.DB@12a54f9
          com.yijia_ctgu.DB.DB@12a54f9


          但是在servlet中使用時:
          Resource resource = new ClassPathResource("applicationContext.xml");
          BeanFactory factory = new XmlBeanFactory(resource);
           dbDAO = (DB)factory.getBean("dbDAO");
          每次操作創建的都是不同的引用:
          如com.yijia_ctgu.DB.DB@16e1782
            com.yijia_ctgu.DB.DB@19be6ee

          為何會是這樣,是不是servlet每次都會重新生成spring容器?是servlet獲取bean的方式有問題嗎?還是servlet根本不可能每次使用相同的bean.

          我懂了,必須用別的方式:先在web.xml中定義applicatincontext的位置,再用WebApplicationContextUtils獲取ApplicationContext,在用它獲取bean,這樣就每次就是同樣的bean了。

          但是錯誤還是在繼續,spring我沒系統的學,所以總是有太多的問題。



          開機 2008-11-05 10:34 發表評論

          文章來源:http://www.aygfsteel.com/yijia/archive/2008/11/05/238753.html
          posted on 2009-10-20 09:32 開機 閱讀(136) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 洪雅县| 南郑县| 威海市| 珠海市| 新绛县| 蓬莱市| 东乌珠穆沁旗| 汉川市| 新河县| 呼玛县| 江都市| 赤壁市| 武定县| 钟山县| 泸水县| 红原县| 安顺市| 莱芜市| 佳木斯市| 额济纳旗| 柯坪县| 丹寨县| 辉南县| 元阳县| 辽宁省| 南郑县| 九台市| 三台县| 凌源市| 石棉县| 乌审旗| 资源县| 喀喇沁旗| 津市市| 九龙县| 刚察县| 安平县| 太原市| 扎兰屯市| 黑龙江省| 修水县|