码迷,mamicode.com
首页 > 编程语言 > 详细

Spring_国际化信息设置

时间:2018-05-17 22:26:39      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:code   one   scan   cti   not   java   xml配置   有用   color   

生命太过短暂,今天放弃了明天不一定能得到。

  Spring有多个信息源的类,它们都实现了MessageSource接口。在这些类中,最常见和有用的是 ResourceBundleMessageSource

ReloadableResourceBundleMessageSource

  1.配置ResourceBundleMessageSource

  1)使用Java配置   

package config;

import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan("study.practice")
public class WebConfig extends WebMvcConfigurerAdapter {
    
    /**
     * 配置JSP视图解析器:InternalResourceViewResolver
     * @return
     */
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver resolver =
                new InternalResourceViewResolver();
        //添加前缀
        resolver.setPrefix("/WEB-INF/views");
        //添加后缀
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
        return resolver;
    }
    
    /**
     * 配置国际化信息源 ResourceBundleMessageSource
     * @return
     */
    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = 
                new ResourceBundleMessageSource();
        messageSource.setBasename("messages");
        return messageSource;
    }
}

 

  2)使用XML配置

 

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
            p:basename="messages"
        />

 

  设置该bean的baseName属性,ResourceBundleMessageSource 会试图在根路径的属性文件中解析信息,这些属性文件的名称时根据这个基础名称衍生得到的,如以上代码baseName为‘messages‘,那么这些属性文件可命名为‘messages_zh.properties‘或‘messages_us.properties‘。

 

  2.配置ReloadableResourceBundleMessageSource

  1)使用Java配置

 

@Bean
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource =
                new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("file:///etc/source/messages");
        messageSource.setCacheSeconds(10);
        return messageSource;
    }

  2)使用XML配置

 

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
            p:basename="file:///etc/source/messages"
            p:cacheSeconds="10"
        />

 

  这两种方案的工作方式非常类似,区别在于ReloadableResourceBundleMessageSource 能够重新加载信息属性,而不必重新编译或重启应用。

 

Spring_国际化信息设置

标签:code   one   scan   cti   not   java   xml配置   有用   color   

原文地址:https://www.cnblogs.com/dandelZH/p/9053616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!