package com.qianwen.core.i18n.config; import com.qianwen.core.i18n.provider.I18nMessageProvider; import com.qianwen.core.i18n.source.DynamicMessageSource; import com.qianwen.core.i18n.source.MessageSourceHierarchicalChanger; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration(proxyBeanMethods = false) @Import({CustomMessageSourceAutoConfiguration.class}) public class I18nMessageSourceConfiguration { @ConditionalOnMissingBean(name = {"messageSource"}) @ConditionalOnBean({I18nMessageProvider.class}) @Bean(name = {"messageSource"}) public DynamicMessageSource messageSource(I18nMessageProvider i18nMessageProvider) { return new DynamicMessageSource(i18nMessageProvider); } @ConditionalOnBean(name = {"messageSource"}, value = {I18nMessageProvider.class}) @Bean(name = {DynamicMessageSource.DYNAMIC_MESSAGE_SOURCE_BEAN_NAME}) public DynamicMessageSource dynamicMessageSource(I18nMessageProvider i18nMessageProvider) { return new DynamicMessageSource(i18nMessageProvider); } @ConditionalOnBean(name = {"messageSource", DynamicMessageSource.DYNAMIC_MESSAGE_SOURCE_BEAN_NAME}) @Bean public MessageSourceHierarchicalChanger messageSourceHierarchicalChanger() { return new MessageSourceHierarchicalChanger(); } }