对比新文件 |
| | |
| | | package org.springblade.core.tool.convert; |
| | | |
| | | 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. |
| | | * <p> |
| | | * 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; |
| | | } |
| | | |
| | | } |