Skip to content

Commit 88bb8ab

Browse files
committed
fix
Signed-off-by: yuluo-yx <yuluo08290126@gmail.com>
1 parent 3e3bbf7 commit 88bb8ab

File tree

4 files changed

+112
-60
lines changed

4 files changed

+112
-60
lines changed

alerter/src/main/java/org/apache/hertzbeat/alert/config/JacksonConfiguration.java

Lines changed: 0 additions & 41 deletions
This file was deleted.
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package org.apache.hertzbeat.common.config;
2+
3+
import java.text.SimpleDateFormat;
4+
import java.time.LocalDate;
5+
import java.time.LocalDateTime;
6+
import java.time.LocalTime;
7+
import java.time.OffsetDateTime;
8+
import java.time.OffsetTime;
9+
import java.time.ZonedDateTime;
10+
import java.time.format.DateTimeFormatter;
11+
import java.util.List;
12+
import java.util.TimeZone;
13+
14+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
15+
import com.fasterxml.jackson.annotation.PropertyAccessor;
16+
import com.fasterxml.jackson.databind.ObjectMapper;
17+
import com.fasterxml.jackson.databind.SerializationFeature;
18+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
19+
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
20+
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
21+
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
22+
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
23+
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
24+
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
25+
26+
import org.springframework.beans.factory.annotation.Autowired;
27+
import org.springframework.context.annotation.Configuration;
28+
import org.springframework.data.web.config.SpringDataJacksonConfiguration;
29+
import org.springframework.http.converter.HttpMessageConverter;
30+
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
31+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
32+
33+
/**
34+
* @author yuluo
35+
* @author <a href="mailto:yuluo08290126@gmail.com">yuluo</a>
36+
*/
37+
38+
@Configuration
39+
public class MVCConfig implements WebMvcConfigurer {
40+
41+
/** 默认日期时间格式 */
42+
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
43+
/** 默认日期格式 */
44+
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
45+
/** 默认时间格式 */
46+
public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
47+
48+
@Autowired
49+
private SpringDataJacksonConfiguration.PageModule pageModule;
50+
51+
@Override
52+
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
53+
54+
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
55+
56+
ObjectMapper objectMapper = new ObjectMapper();
57+
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
58+
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
59+
60+
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DEFAULT_DATE_TIME_FORMAT);
61+
simpleDateFormat.setTimeZone(TimeZone.getDefault());
62+
63+
JavaTimeModule javaTimeModule = new JavaTimeModule();
64+
65+
DateTimeFormatter defaultDateTimeFormatter = DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT);
66+
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT);
67+
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT);
68+
69+
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(defaultDateTimeFormatter));
70+
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(dateTimeFormatter));
71+
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(timeFormatter));
72+
73+
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(dateTimeFormatter));
74+
javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(dateTimeFormatter));
75+
javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(timeFormatter));
76+
77+
objectMapper.registerModule(javaTimeModule)
78+
.registerModule(pageModule)
79+
.setDateFormat(simpleDateFormat);
80+
81+
messageConverter.setObjectMapper(objectMapper);
82+
converters.add(0, messageConverter);
83+
}
84+
}

manager/src/main/java/org/apache/hertzbeat/manager/config/JacksonConfig.java

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,48 @@
1717

1818
package org.apache.hertzbeat.manager.config;
1919

20+
import com.fasterxml.jackson.databind.DeserializationFeature;
2021
import com.fasterxml.jackson.databind.ObjectMapper;
22+
import com.fasterxml.jackson.databind.SerializationFeature;
23+
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
2124
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
25+
26+
import java.math.BigDecimal;
2227
import java.text.SimpleDateFormat;
28+
import java.time.LocalDate;
29+
import java.time.LocalDateTime;
30+
import java.time.LocalTime;
31+
import java.time.format.DateTimeFormatter;
2332
import java.util.TimeZone;
33+
34+
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
35+
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
36+
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
37+
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
38+
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
39+
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
40+
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
2441
import lombok.extern.slf4j.Slf4j;
42+
43+
import org.springframework.beans.factory.annotation.Autowired;
2544
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
2645
import org.springframework.context.annotation.Bean;
2746
import org.springframework.context.annotation.Configuration;
47+
import org.springframework.data.web.config.SpringDataJacksonConfiguration;
2848
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
2949

3050
/**
3151
* jackson config
3252
*/
33-
@Slf4j
53+
3454
@Configuration
3555
public class JacksonConfig {
3656

37-
@Bean
38-
public Jackson2ObjectMapperBuilderCustomizer customizer() {
39-
return builder -> {
40-
JavaTimeModule javaTimeModule = new JavaTimeModule();
41-
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
42-
simpleDateFormat.setTimeZone(TimeZone.getDefault());
43-
44-
builder.modules(javaTimeModule)
45-
.timeZone(TimeZone.getDefault())
46-
.dateFormat(simpleDateFormat);
47-
};
48-
}
49-
50-
@Bean
51-
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
52-
return builder.build();
53-
}
57+
@Bean
58+
public Jackson2ObjectMapperBuilder objectMapperBuilder(SpringDataJacksonConfiguration.PageModule pageModule) {
59+
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
60+
builder.modules(pageModule);
61+
return builder;
62+
}
5463

5564
}

manager/src/main/resources/application.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
server:
16-
port: 1157
16+
port: 11570
1717
spring:
1818
application:
1919
name: ${HOSTNAME:@hertzbeat@}${PID}

0 commit comments

Comments
 (0)