當前位置:
首頁 > 最新 > SpringBoot如何讀取資源文件

SpringBoot如何讀取資源文件

  • 在實際的項目開發之中資源文件一定不可或缺,因為所有的提示文字信息都要求在資源文件之中進行定義,而且資源文件是實現國際化技術的主要手段。如果要想在SpringBoot裡面進行資源文件的配置只需要做一些簡單的application.yml配置即可,而且所有注入的資源文件都可以像最初的Spring處理那樣直接使用MessageSource進行讀取。

    為了統一管理資源文件,在「src/main/resources」目錄之中建立一個i18n的存儲目錄.

  • 在"src/main/resources"目錄之中建立有兩個資源文件:Messages.properties。

    welcome.url=www.baidu.comwelcome.msg=歡迎光臨!

  • 建立Pages.propertis配置文件:

    member.add.page=/pages/back/admin/member/member_add.jsp

    member.add.action=/pages/back/admin/member/member_add.action

  • 修改application.yml配置文件:

    server:

    port: 80

    spring:

    messages:

    basename: i18n/Messages,i18n/Pages #資源文件的名稱

  • 當執行完以上的配置之後會自動為用戶創建MessageSource對象,那麼用戶在使用的時候直接注入此對象即可。

    考慮到實際開發的標準性,所以現在建議創建一個父的控制器抽象類:AbstractBaseController,而後在此抽象類之中進行資源讀取類的配置。

    package com.gwolf.util.controller;

    import org.springframework.context.MessageSource;

    import javax.annotation.Resource;

    import java.util.Locale;

    public abstract class AbstractBaseController {

    @Resource

    private MessageSource messageSource;//自動注入此資源對象

    public String getMessage(String key,String ...args) {

    return this.messageSource.getMessage(key,args,

    Locale.getDefault());

    }

    }

  • 在控制器的子類之中讀取配置信息:

    package com.gwolf.controller;

    import ch.qos.logback.core.net.SyslogOutputStream;

    import com.gwolf.util.controller.AbstractBaseController;

    import org.springframework.web.bind.annotation.PathVariable;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.RequestMethod;

    import org.springframework.web.bind.annotation.RestController;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    @RestController

    public class MessageController extends AbstractBaseController{

    @RequestMapping(value="/echo",

    method = RequestMethod.GET)

    public String echo(String mid) {

    System.out.println("訪問:" + super.getMessage("member.add.action"));

    return super.getMessage("welcome.msg",mid);

    }

    }

  • 編寫一個junit測試類,類測試以上的測試器控制程序是否正確。

    package com.gwolf.test;

    import com.gwolf.StartSpringBootMain;

    import com.gwolf.controller.HelloController;

    import com.gwolf.controller.MessageController;

    import org.junit.Test;

    import org.junit.runner.RunWith;

    import org.springframework.boot.test.context.SpringBootTest;

    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

    import org.springframework.test.context.web.WebAppConfiguration;

    import javax.annotation.Resource;

    @SpringBootTest(classes = StartSpringBootMain.class)

    @RunWith(SpringJUnit4ClassRunner.class)

    @WebAppConfiguration

    public class TestMessageController {

    @Resource

    private MessageController messageController;

    @Test

    public void testEcho() {

    System.out.print(this.messageController.echo("www.baidu.com"));

    }

    }

  • 通過SpringBoot執行可以清楚的發現,在SpringBoot裡面所有對象信息的注入配置操作,都直接通過一行簡單的字元串實現了,而且最終也能夠保持與之前同樣運行效果。這樣SpringBoot就完成了讀取資源文件的操作。

  • 喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

    本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


    請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

    用一條比冰糖銀耳還軟糯的毛巾擦臉吧
    你沒貓也不養蛙難道想談戀愛嗎

    TAG:全球大搜羅 |