源码下载:https://u11556602.ctfile.com/fs/11556602-361219278java
https://download.csdn.net/download/qq_36267875/11089023web
在实际的项目开发之中资源文件必定不可或缺,由于全部的提示文字信息都要求在资源文件之中进行定义,并且资源文件是实现国际化技术的主要手段。若是要想在springboot里面进行资源文件的配置只须要作一些简单的application.yml配置便可,并且全部注入的资源文件均可以像最初的spring处理那样直接使用MessageSource进行读取。spring
1.为了统一管理资源文件,在“src/main/resources”目录之中创建有一个i18n的存储目录springboot
2.在“src/main/resources/i18n” 目录之中创建有两个资源文件:app
创建Messages.properties:jsp
welcome.url=www.mldn.com welcome.msg=欢迎{0}光临!
创建Pages.properties配置文件:测试
member.add.page=/pages/back/admin/member/member_add.jsp member.add.action=/pages/back/admin/member/member_add.action
3.修改application.yml配置文件this
spring: # 表示该配置直接为Spring容器负责处理 messages: # 表示进行资源配置 basename: i18n/Messages,i18n/Pages # 资源文件的名称 server: port: 80 # 此处设置的服务的访问端口配置
4.当执行完以上的配置以后会自动为用户建立MessageSource对象,那么用户在使用的时候直接注入此对象便可。url
考虑到实际开发的标准性,因此如今建议建立一个父的控制器的抽象类;AbstractBaseController,在此抽象类之中进行咱们资源读取类的配置.net
package cn.mldn.microboot.util.controller; import java.util.Locale; import javax.annotation.Resource; import org.springframework.context.MessageSource; public abstract class AbstractBaseController { @Resource private MessageSource messageSource; //自动注入此资源对象 public String getMessage(String key, String... args) { return this.messageSource.getMessage(key, args, Locale.getDefault()); } }
5.在控制器的子类之中读取控制器的配置信息
package cn.mldn.microboot.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import cn.mldn.microboot.util.controller.AbstractBaseController; @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); } }
6.编写一个junit测试类,来测试以上的控制器程序是否正确
package cn.mldn.microboot.test; import javax.annotation.Resource; 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 cn.mldn.microboot.StartSpringBootMain; import cn.mldn.microboot.controller.MessageController; @SpringBootTest(classes = StartSpringBootMain.class) @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration public class TestMessageController { @Resource private MessageController messageController; @Test public void testEcho() { System.out.println(this.messageController.echo("mldnjava")); } }
【==访问地址==】/pages/back/admin/member/member_add.action 欢迎mldnjava光临! 2019-04-07 15:02:32.995 INFO 8308 --- [ Thread-3] o.s.w.c.s.GenericWebApplicationContext : Closing org.springframework.web.context.support.GenericWebApplicationContext@1e6454ec: startup date [Sun Apr 07 15:02:31 CST 2019]; root of context hierarchy
经过springboot执行能够清楚的发现,在springboot里面全部对象信息的注入配置操做,都直接经过一行简单的字符串实现了,并且最终也可以保持与以前一样的运行效果。