提交 1ab67c54 编写于 作者: G gokje

Introducing new features. closed #I1KVNG GET请求支持时间字符串到JAVA8对象的自动转换

上级 88a612ed
......@@ -35,15 +35,15 @@ import java.util.TimeZone;
/**
* JacksonConfig
*
* @author: lengleng
* @author lengleng
* @author L.cm
* @author: lishangbu
* @date: 2018/10/22
* @author lishangbu
* @date 2020-06-17
*/
@Configuration
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class JacksonConfig {
public class JacksonConfiguration {
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer() {
......
......@@ -37,7 +37,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@RequiredArgsConstructor
@AutoConfigureBefore(RedisAutoConfiguration.class)
public class RedisTemplateConfig {
public class RedisTemplateConfiguration {
private final RedisConnectionFactory factory;
......
......@@ -27,7 +27,7 @@ import org.springframework.web.client.RestTemplate;
* @date 2019/2/1 RestTemplate
*/
@Configuration
public class RestTemplateConfig {
public class RestTemplateConfiguration {
@Bean
public RestTemplate restTemplate() {
......
......@@ -16,13 +16,18 @@
*
*/
package com.pig4cloud.pig.common.core.mybatis;
package com.pig4cloud.pig.common.core.config;
import cn.hutool.core.date.DatePattern;
import com.pig4cloud.pig.common.core.mybatis.SqlFilterArgumentResolver;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.datetime.standard.DateTimeFormatterRegistrar;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.time.format.DateTimeFormatter;
import java.util.List;
import static org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type.SERVLET;
......@@ -35,11 +40,29 @@ import static org.springframework.boot.autoconfigure.condition.ConditionalOnWebA
*/
@Configuration
@ConditionalOnWebApplication(type = SERVLET)
public class WebMvcConfig implements WebMvcConfigurer {
public class WebMvcConfiguration implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(new SqlFilterArgumentResolver());
}
/**
* 增加GET请求参数中时间类型转换 {@link com.pig4cloud.pig.common.core.jackson.PigJavaTimeModule}
* <ul>
* <li>HH:mm:ss -> LocalTime</li>
* <li>yyyy-MM-dd -> LocalDate</li>
* <li>yyyy-MM-dd HH:mm:ss -> LocalDateTime</li>
* </ul>
* @param registry
*/
@Override
public void addFormatters(FormatterRegistry registry) {
DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
registrar.setTimeFormatter(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN));
registrar.setDateFormatter(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
registrar.setDateTimeFormatter(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN));
registrar.registerFormatters(registry);
}
}
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.pig4cloud.pig.common.core.config.JacksonConfig,\
com.pig4cloud.pig.common.core.config.RedisTemplateConfig,\
com.pig4cloud.pig.common.core.config.RestTemplateConfig,\
com.pig4cloud.pig.common.core.config.JacksonConfiguration,\
com.pig4cloud.pig.common.core.config.RedisTemplateConfiguration,\
com.pig4cloud.pig.common.core.config.RestTemplateConfiguration,\
com.pig4cloud.pig.common.core.util.SpringContextHolder,\
com.pig4cloud.pig.common.core.mybatis.WebMvcConfig
com.pig4cloud.pig.common.core.config.WebMvcConfiguration
package com.pig4cloud.pig.monitor.config;
import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.pig4cloud.pig.common.core.jackson.PigJavaTimeModule;
import de.codecentric.boot.admin.server.config.AdminServerWebConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Locale;
import java.util.TimeZone;
/**
* JacksonConfig 扩展增加 spring boot 默认配置
* <p>
* 自身序列化机制 {@link de.codecentric.boot.admin.server.utils.jackson.AdminServerModule}
*
* @author lengleng
* @date 2020-06-17
*/
@Configuration
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureAfter(AdminServerWebConfiguration.class)
public class JacksonConfig {
/**
* 覆盖core 模块提供的序列方式,增加springboot admin 序列化
* @param adminJacksonModule spring boot admin 提供的序列化
* @return Jackson customizer
*/
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer(SimpleModule adminJacksonModule) {
return builder -> {
builder.locale(Locale.CHINA);
builder.timeZone(TimeZone.getTimeZone("Asia/Shanghai"));
builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
builder.modules(new PigJavaTimeModule(), adminJacksonModule);
};
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册