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