package com.vci.web.util.convert; import com.vci.web.util.convert.EnumToStringConverter; import org.springframework.boot.convert.ApplicationConversionService; import org.springframework.core.convert.support.GenericConversionService; import org.springframework.lang.Nullable; import org.springframework.util.StringValueResolver; /** * 类型 转换 服务,添加了 IEnum 转换 * * @author L.cm */ public class BladeConversionService extends ApplicationConversionService { @Nullable private static volatile BladeConversionService SHARED_INSTANCE; public BladeConversionService() { this(null); } public BladeConversionService(@Nullable StringValueResolver embeddedValueResolver) { super(embeddedValueResolver); super.addConverter(new EnumToStringConverter()); super.addConverter(new StringToEnumConverter()); } /** * Return a shared default application {@code ConversionService} instance, lazily * building it once needed. *
* Note: This method actually returns an {@link BladeConversionService} * instance. However, the {@code ConversionService} signature has been preserved for * binary compatibility. * @return the shared {@code BladeConversionService} instance (never{@code null}) */ public static GenericConversionService getInstance() { BladeConversionService sharedInstance = BladeConversionService.SHARED_INSTANCE; if (sharedInstance == null) { synchronized (BladeConversionService.class) { sharedInstance = BladeConversionService.SHARED_INSTANCE; if (sharedInstance == null) { sharedInstance = new BladeConversionService(); BladeConversionService.SHARED_INSTANCE = sharedInstance; } } } return sharedInstance; } }