소스 검색

feat:
JacksonTypeHandler中的ObjectMapper与Web统一

18339543638 2 년 전
부모
커밋
0685a4ae08

+ 12 - 0
tr-plugins/tr-spring-boot-starter-plugin-mybatis/src/main/java/cn/tr/plugin/mybatis/TrMybatisAutoConfiguration.java

@@ -1,5 +1,6 @@
 package cn.tr.plugin.mybatis;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.tr.plugin.mybatis.config.filter.DruidAdRemoveFilter;
 import cn.tr.plugin.mybatis.config.handler.CreateAndUpdateMetaObjectHandler;
 import cn.tr.plugin.mybatis.config.logic.PteromysSqlInjector;
@@ -7,6 +8,7 @@ import cn.tr.plugin.mybatis.config.page.PageConfig;
 import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
@@ -14,6 +16,9 @@ import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInt
 import java.util.*;
 
 import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
@@ -25,6 +30,12 @@ import org.springframework.context.annotation.Bean;
  * @Date: 2023年02月21日
  */
 public class TrMybatisAutoConfiguration {
+    @Autowired(required = false)
+    public TrMybatisAutoConfiguration(ObjectMapper objectMapper) {
+        if(ObjectUtil.isNotNull(objectMapper)){
+            JacksonTypeHandler.setObjectMapper(objectMapper);
+        }
+    }
 
     @Bean
     public ISqlInjector sqlInjector(){
@@ -40,6 +51,7 @@ public class TrMybatisAutoConfiguration {
      * 自动填充字段
      */
     @Bean
+    @ConditionalOnMissingBean(MetaObjectHandler.class)
     public MetaObjectHandler createAndUpdateMetaObjectHandler(){
         return new CreateAndUpdateMetaObjectHandler();
     }