minglipro baa5aafe23
All checks were successful
Gitea Actions Build / Build (push) Successful in 1m0s
no message
2025-09-11 19:32:51 +08:00

59 lines
1.8 KiB
Java

package com.mingliqiye.utils.springboot.autoconfigure;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mingliqiye.utils.json.JacksonJsonApi;
import com.mingliqiye.utils.json.JsonApi;
import com.mingliqiye.utils.json.converters.DateTimeJsonConverter;
import com.mingliqiye.utils.json.converters.UUIDJsonStringConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
@ConditionalOnClass(ObjectMapper.class)
@AutoConfiguration
@AutoConfigureAfter(
name = {
"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration",
}
)
public class JacksonAutoConfiguration {
private static final Logger log = LoggerFactory.getLogger(
"MingliUtils-JacksonAutoConfiguration"
);
public JacksonAutoConfiguration(ObjectMapper objectMapper) {
addModules(objectMapper);
log.info("MingliUtils Jackson Serializers created");
}
public static ObjectMapper addModules(ObjectMapper objectMapper) {
return objectMapper
.registerModule(
new DateTimeJsonConverter()
.getJacksonJsonStringConverterAdapter()
.getJacksonModule()
)
.registerModule(
new UUIDJsonStringConverter()
.getJacksonJsonStringConverterAdapter()
.getJacksonModule()
);
}
@Bean
@Primary
@ConditionalOnMissingBean
public JsonApi jsonApi(ObjectMapper objectMapper) {
log.info(
"MingliUtils-JsonApiAutoConfiguration: JacksonJsonApi bean is created."
);
return new JacksonJsonApi(objectMapper);
}
}