package com.qianwen.core.i18n.config; import javax.validation.MessageInterpolator; import javax.validation.Validator; import javax.validation.executable.ExecutableValidator; import com.qianwen.core.i18n.advice.EmptyCurlyToDefaultMessageInterpolator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnResource; import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Role; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import org.springframework.validation.beanvalidation.MessageSourceResourceBundleLocator; @AutoConfigureBefore({ValidationAutoConfiguration.class}) @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ExecutableValidator.class}) @AutoConfigureAfter({I18nMessageSourceConfiguration.class}) @AutoConfigureOrder(Integer.MIN_VALUE) @ConditionalOnResource(resources = {"classpath:META-INF/services/javax.validation.spi.ValidationProvider"}) /* loaded from: blade-starter-i18n-9.3.0.0-SNAPSHOT.jar:org/springblade/core/i18n/config/I18nValidationConfiguration.class */ public class I18nValidationConfiguration { @ConditionalOnMissingBean({Validator.class, MessageInterpolator.class}) @ConditionalOnBean({MessageSource.class}) @Bean public EmptyCurlyToDefaultMessageInterpolator messageInterpolator(MessageSource messageSource) { return new EmptyCurlyToDefaultMessageInterpolator(new MessageSourceResourceBundleLocator(messageSource)); } @ConditionalOnMissingBean({Validator.class}) @ConditionalOnBean({MessageInterpolator.class}) @Bean @Role(2) public static LocalValidatorFactoryBean defaultValidator(MessageInterpolator messageInterpolator) { LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean(); factoryBean.setMessageInterpolator(messageInterpolator); return factoryBean; } }