国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種適用通配符模式的國際化資源文件的配置方法與流程

      文檔序號:12176423閱讀:405來源:國知局

      本發(fā)明涉及計算機軟件應用技術(shù)領域,具體涉及一種適用通配符模式的國際化資源文件的配置方法,一種適用通配符模式的SpringMVC國際化資源文件的配置方法。



      背景技術(shù):

      Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring 框架提供了構(gòu)建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),可以選擇是使用內(nèi)置的 Spring Web 框架還可以是 Struts 這樣的 Web 框架。

      Spring MVC 是Spring框架最重要的的模塊之一。它以強大的Spring IoC容器為基礎,并充分利用容器的特性來簡化它的配置。

      模型-視圖-控制器(MVC)是一個眾所周知的以設計界面應用程序為基礎的設計模式。它主要通過分離模型、視圖及控制器在應用程序中的角色將業(yè)務邏輯從界面中解耦。通常,模型負責封裝應用程序數(shù)據(jù)在視圖層展示。視圖僅僅只是展示這些數(shù)據(jù),不包含任何業(yè)務邏輯??刂破髫撠熃邮諄碜杂脩舻恼埱?,并調(diào)用后臺服務(manager或者dao)來處理業(yè)務邏輯。處理后,后臺業(yè)務層可能會返回了一些數(shù)據(jù)在視圖層展示??刂破魇占@些數(shù)據(jù)及準備模型在視圖層展示。MVC模式的核心思想是將業(yè)務邏輯從界面中分離出來,允許它們單獨改變而不會相互影響。

      SpringMVC提供了很強大的容器管理功能,同時也給用戶提供了國際化資源的方法,但通用的方法很難適用于所有場景。SpringMVC提供的國際化方法中的ResourceBundleMessageSource類的baseNames屬性指定資源文件的指定路徑;而另一個類PropertiesPlaceHolderConfigure的locations屬性則可以適用通配符模式指定加載資源文件。

      基于maven或者gradle構(gòu)建的項目大多包含很多子模塊。當一個web項目配置國際化資源的時候,由于眾多子項目的存在,國際化資源文件的配置就顯得冗余了,而且每次創(chuàng)建或者刪除項目的時候都需要去applicationContext.xml中去增加或者刪除資源文件的路徑地址。



      技術(shù)實現(xiàn)要素:

      本發(fā)明要解決的技術(shù)問題是:本發(fā)明針對以上問題,提供一種適用通配符模式的國際化資源文件的配置方法,主要是為了基于maven或者gradle構(gòu)建的web項目的國際化資源配置可以適用于通配符模式,方便代碼的開發(fā)維護,可以讓spring自己去讀取特定路徑下的所有資源,而不需要手動一一添加了。

      本發(fā)明所采用的技術(shù)方案為:

      一種適用通配符模式的國際化資源文件的配置方法,所述方法通過在springMVC中新寫一個類,繼承于springMVC的ResourceBundleMessageSource類,并添加locations屬性,然后在setLocations方法中將location屬性轉(zhuǎn)化為baseName屬性并傳值給父類,這樣就可以實現(xiàn)通配符模式適配了。

      所述方法相關(guān)代碼如下:

      public class ResourceBundleMessageSource extends

      org.springframework.context.support.ResourceBundleMessageSource {

      private Resource[] locations;

      /**

      * @param locations the locations to set

      */

      public void setLocations(Resource[] locations) {

      this.locations = locations;

      List<String> bns = new ArrayList<>();

      for(int i=0;i<locations.length;i++) {

      String filePath = locations[i].getURL().getFile().split("/WEB-INF/classes")[1];

      String baseName = "i18n/" + filePath.substring(0, filePath.length() - 14);

      if (!bns.contains(baseName)) {

      bns.add(baseName);

      }

      }

      String[] basenames = new String[bns.size()];

      for (int j = 0; j < bns.size(); j++) {

      basenames[j] = bns.get(j);

      }

      super.setBasenames(basenames);

      }

      }

      所述方法采用的配置文件如下:

      <bean id="messageSource" class="com.inspur.cloudframework.spring.context.support.ResourceBundleMessageSource">

      <property name="locations">

      <list>

      <value>classpath*:/i18n/*</value>

      </list>

      </property>

      <property name="defaultEncoding" value="UTF-8"/>

      <property name="useCodeAsDefaultMessage" value="true"/>

      </bean>。

      本發(fā)明的有益效果為:

      本發(fā)明適用通配符模式的SpringMVC國際化資源文件,可以讓spring自己去讀取特定路徑下的所有資源,而不需要手動一一添加,方便代碼的開發(fā)維護。

      具體實施方式

      下面結(jié)合具體實施方式對本發(fā)明進一步說明:

      實施例1:

      一種適用通配符模式的國際化資源文件的配置方法,其特征在于,所述方法通過在springMVC中新寫一個類,繼承于springMVC的ResourceBundleMessageSource類,并添加locations屬性,然后在setLocations方法中將location屬性轉(zhuǎn)化為baseName屬性并傳值給父類,這樣就可以實現(xiàn)通配符模式適配了。

      實施例2

      在實施例1的基礎上,本實施例所述方法相關(guān)代碼如下:

      public class ResourceBundleMessageSource extends

      org.springframework.context.support.ResourceBundleMessageSource {

      private Resource[] locations;

      /**

      * @param locations the locations to set

      */

      public void setLocations(Resource[] locations) {

      this.locations = locations;

      List<String> bns = new ArrayList<>();

      for(int i=0;i<locations.length;i++) {

      String filePath = locations[i].getURL().getFile().split("/WEB-INF/classes")[1];

      String baseName = "i18n/" + filePath.substring(0, filePath.length() - 14);

      if (!bns.contains(baseName)) {

      bns.add(baseName);

      }

      }

      String[] basenames = new String[bns.size()];

      for (int j = 0; j < bns.size(); j++) {

      basenames[j] = bns.get(j);

      }

      super.setBasenames(basenames);

      }

      }

      實施例3

      在實施例2的基礎上,本實施例所述方法采用的配置文件如下:

      <bean id="messageSource" class="com.inspur.cloudframework.spring.context.support.ResourceBundleMessageSource">

      <property name="locations">

      <list>

      <value>classpath*:/i18n/*</value>

      </list>

      </property>

      <property name="defaultEncoding" value="UTF-8"/>

      <property name="useCodeAsDefaultMessage" value="true"/>

      </bean>。

      實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應由權(quán)利要求限定。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1