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; } }