package com.xiaopeng.pushMessage.config;
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import org.springframework.boot.autoconfigure.context.MessageSourceProperties;
|
import org.springframework.context.MessageSource;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.support.ResourceBundleMessageSource;
|
import org.springframework.util.StringUtils;
|
|
import java.nio.charset.StandardCharsets;
|
import java.time.Duration;
|
|
|
/**
|
* 国际化配置
|
*/
|
@Configuration
|
public class MessageLocalConfig {
|
|
|
@Bean
|
public MessageSourceProperties messageSourceProperties() {
|
MessageSourceProperties properties = new MessageSourceProperties();
|
properties.setBasename("i18n/messages");
|
properties.setEncoding(StandardCharsets.UTF_8);
|
properties.setFallbackToSystemLocale(false);
|
properties.setCacheDuration(Duration.ofSeconds(-1));
|
properties.setAlwaysUseMessageFormat(false);
|
properties.setUseCodeAsDefaultMessage(true);
|
return properties;
|
}
|
|
|
@Bean
|
public MessageSource messageSource(MessageSourceProperties properties) {
|
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
|
if (StringUtils.hasText(properties.getBasename())) {
|
messageSource.setBasenames(StringUtils
|
.commaDelimitedListToStringArray(StringUtils.trimAllWhitespace(properties.getBasename())));
|
}
|
if (properties.getEncoding() != null) {
|
messageSource.setDefaultEncoding(properties.getEncoding().name());
|
}
|
messageSource.setFallbackToSystemLocale(properties.isFallbackToSystemLocale());
|
Duration cacheDuration = properties.getCacheDuration();
|
if (cacheDuration != null) {
|
messageSource.setCacheMillis(cacheDuration.toMillis());
|
}
|
messageSource.setAlwaysUseMessageFormat(properties.isAlwaysUseMessageFormat());
|
messageSource.setUseCodeAsDefaultMessage(properties.isUseCodeAsDefaultMessage());
|
return messageSource;
|
}
|
|
|
// @Bean//注册国际化组件
|
// public LocaleResolver localeResolver(){
|
// return new MyLocaleResolver();
|
// }
|
|
@Bean
|
ObjectMapper om() {
|
// 允许对象忽略json中不存在的属性
|
ObjectMapper om = new ObjectMapper();
|
om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
om.registerModule(new JavaTimeModule());
|
return om;
|
}
|
|
}
|