Merge branch 'feature/conversionService_sigle' into 'master'

解决多个ConversionService失败问题

See merge request infra/axzo-framework-commons!24
This commit is contained in:
田立勇 2022-12-28 10:19:07 +00:00
commit 214cd42b1e

View File

@ -1,8 +1,8 @@
package cn.axzo.framework.autoconfigure.validation;
import cn.axzo.framework.context.validation.SpringValidator;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@ -12,7 +12,7 @@ import org.springframework.core.convert.ConversionService;
import org.springframework.format.support.DefaultFormattingConversionService;
import org.springframework.validation.SmartValidator;
import java.util.Optional;
import java.util.Objects;
/**
* @Description
@ -22,18 +22,21 @@ import java.util.Optional;
@Configuration
@ConditionalOnBean(SmartValidator.class)
@ConditionalOnClass(SpringValidator.class)
@RequiredArgsConstructor
public class SpringValidatorAutoConfiguration {
private final SmartValidator validator;
@Autowired
private SmartValidator validator;
private final ObjectProvider<ConversionService> conversionServiceProvider;
@Autowired
@Qualifier("mvcConversionService")
private ConversionService conversionService;
@Bean
@ConditionalOnMissingBean
public SpringValidator springValidator() {
ConversionService conversionService = Optional.ofNullable(conversionServiceProvider.getIfAvailable())
.orElseGet(DefaultFormattingConversionService::new);
if (Objects.isNull(conversionService)) {
conversionService = new DefaultFormattingConversionService();
}
return new SpringValidator(validator, conversionService);
}
}