像一顆晨土

          常用鏈接

          統(tǒng)計

          blogs

          life

          最新評論

          Spring 中使用資源

                  在Web應(yīng)用中如果自已的程序里面需要用到外部資源文件(配置文件),一般會把配置文件放在classes下面或WEB-INF下面。如果加載這結(jié)文件的話通常有兩種辦法。一是寫絕對路徑,這是最不推薦的方法。二是引入ServletContext,從相對路徑中獲得絕對路徑。寫相對路徑的時候使用ServletContext是免不了的,我的應(yīng)用服務(wù)器是Tomcat,使用相對路徑找文件都是在Tomcat的Bin文件夾下面找,所以我只能用ServletContext來找。后來,為了使程序能脫離Servlet容器運行,就引入了Spring的資源管理機制。
                 Spring為資源管理提供了一個Resource接口,并提供了幾個Resource的實現(xiàn)。它們都需要一個String表示的資源的實際位置。依據(jù)這個String,Spring將會自動為你選擇正確的Resource實現(xiàn)。
                 下面一段代碼,我為了得到一個資源的位置,定義了個屬性,一個是file代表文件的路徑(相對或絕對),一個是Resouce接口的屬性。在Spring的任何Context中都可以通過設(shè)置Resource的屬性來得到資源的位置。
                 private String file;

              private Resource resource;

              public void setResource(Resource resource) {
                  this.resource = resource;
                  try {
                      this.file = resource.getFile().getAbsolutePath();
                  catch (IOException e) {
                      e.printStackTrace();
                      throw new RuntimeException(e.getMessage());
                  }
              }

              public void setFile(String file) {
                  this.file = file;
              }

             
                 Spring配置文件如下:
                 <bean id="mybean" class="net.jf.mybean">
                      <property name="resource">
                          <value>/WEB-INF/config.xml</value>
                      </property>
                  </bean>   
              上面的例子是在WebApplicationAContext中的。Spring會根據(jù)Context的運行環(huán)境決定去哪里加載資源。如果是Application程序。即使用類似ClassPathXmlApplicationContext這樣的Context,Spring則會使用ClassPathSource來代表資源。將會在程序運行時的ClassPath中尋找資源。但要注意一點。Spring目前能找到的資源是在FileSystem中的。而不能找到Jar包里面的資源,就算你的資源的確在ClassPath當中。這一點在JavaDoc里有說明。我又是在犯是同樣的錯誤后才想到去查找文檔。。。嘿。教訓(xùn)啊。
              這些只是很粗淺的用法。記下來以備忘 。。如果有不正確或不妥當?shù)牡胤竭€望指正。:)
              

          posted on 2006-04-13 12:30 艾塵 閱讀(1358) 評論(0)  編輯  收藏 所屬分類: pick up

          主站蜘蛛池模板: 融水| 松滋市| 巨野县| 东源县| 宾川县| 浙江省| 达州市| 光山县| 台中县| 始兴县| 西充县| 沽源县| 渭南市| 信丰县| 阳江市| 永寿县| 平昌县| 黄梅县| 清远市| 黄浦区| 郸城县| 常山县| 莱州市| 交城县| 亳州市| 新巴尔虎右旗| 长葛市| 乐清市| 旺苍县| 拜泉县| 陆良县| 霍林郭勒市| 疏勒县| 龙泉市| 昌宁县| 灵台县| 沽源县| 满洲里市| 丘北县| 中西区| 麦盖提县|