redstar/redstar-cloud/redstar-cloud-common/src/main/java/business/common/configure/FeignConfig.java

52 lines
1.7 KiB
Java

package business.common.configure;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.annotation.PostConstruct;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import lombok.extern.slf4j.Slf4j;
/**
* @author HI
* @since 2020/12/9 9:50
*/
@Slf4j
@Configuration
public class FeignConfig {
private final RequestMappingHandlerAdapter handlerAdapter;
public FeignConfig(RequestMappingHandlerAdapter handlerAdapter) {
this.handlerAdapter = handlerAdapter;
}
@PostConstruct
public void initEditableValidation() {
ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) handlerAdapter.getWebBindingInitializer();
if (initializer.getConversionService() != null) {
GenericConversionService genericConversionService = (GenericConversionService) initializer.getConversionService();
genericConversionService.addConverter(String.class, Date.class, new String2DateConverter());
}
}
class String2DateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return simpleDateFormat.parse(source);
} catch (ParseException e) {
log.error("", e);
}
return null;
}
}
}