首先我们准备一些资源,目的是为了更好展示效果

springboot 消息机制 springboot messagesource_java


resource下建立一个文件夹i18n,用于专门存放国际化配置文件夹

springboot 消息机制 springboot messagesource_配置文件_02


springboot 消息机制 springboot messagesource_spring boot_03


springboot有默认的国际化自动配置,在这个配置类里面MessageSourceAutoConfiguration

点进去这个类

springboot 消息机制 springboot messagesource_配置文件_04


找到MessageSourceProperties发现是一个配置文件,前置是spring.meaagse

springboot 消息机制 springboot messagesource_springboot 消息机制_05


我们点进这个类:找到了message

springboot 消息机制 springboot messagesource_spring boot_06


此时打开springboot的全局配置文件:

springboot 消息机制 springboot messagesource_springboot 消息机制_07


配置页面国际化值

去页面获取国际化的值,查看Thymeleaf的文档,找到message取值操作为:#{…}。我们去页面测试下

springboot 消息机制 springboot messagesource_spring_08


刷新主页:说明我们的配置文件已经全部生效

springboot 消息机制 springboot messagesource_spring_09


但是我们想要更好!可以根据按钮自动切换中文英文!

配置国际化解析:

在Spring中有一个国际化的Locale (区域信息对象);里面有一个叫做LocaleResolver (获取区域信息对象)的解析器!

我们去我们webmvc自动配置文件,寻找一下!看到SpringBoot默认配置:

springboot 消息机制 springboot messagesource_spring boot_10


AcceptHeaderLocaleResolver 这个类中有一个方法

springboot 消息机制 springboot messagesource_spring_11


那假如我们现在想点击链接让我们的国际化资源生效,就需要让我们自己的Locale生效!

我们去自己写一个自己的LocaleResolver,可以在链接上携带区域信息!

修改一下前端页面的跳转连接:

springboot 消息机制 springboot messagesource_spring_12


我们去写一个处理的自定义的组件类!

springboot 消息机制 springboot messagesource_springboot 消息机制_13


为了让我们的区域化信息能够生效,在我们自己的MvcConofig下注入bean;

springboot 消息机制 springboot messagesource_配置文件_14


重启项目,生效

springboot 消息机制 springboot messagesource_spring_15


springboot 消息机制 springboot messagesource_java_16