ソースを参照

升级jackson版本,增加Mapper扫描配置属性

csk 5 年 前
コミット
9357293bf4

+ 1 - 1
build.gradle

@@ -42,7 +42,7 @@ ext {
 
 	logback_ext_spring = '0.1.4'
 
-	jackson = '2.8.4'
+	jackson = '2.9.8'
 	google_guava = '23.3-jre'
 	cage = '1.0'
 	okhttp = '3.4.1'

+ 5 - 0
src/main/java/com/emato/cus/supervise/CusWmsSuperviseApplication.java

@@ -5,6 +5,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @SpringBootApplication(
@@ -19,8 +21,11 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableTransactionManagement
 public class CusWmsSuperviseApplication {
 	private final static Logger logger = LoggerFactory.getLogger(CusWmsSuperviseApplication.class);
+
 	public static void main(String[] args) {
 		SpringApplication.run(CusWmsSuperviseApplication.class, args);
 		logger.info("========= 启动完成 =========");
 	}
+
+
 }

+ 23 - 9
src/main/java/com/emato/cus/supervise/config/ds/primary/PrimaryDataSourceConfig.java

@@ -12,6 +12,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.PropertyResolver;
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 import javax.sql.DataSource;
 
@@ -25,11 +26,23 @@ import javax.sql.DataSource;
  * @author Scott Chen
  * @date 2017/4/22
  */
+@EnableTransactionManagement(order = 2)
 @Configuration
 public class PrimaryDataSourceConfig {
 
-    // yml方式配置
-    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
+    @Autowired
+    private PrimaryMybatisConfigProperties primaryMybatisConfigProperties;
+
+
+    // -------------------- mybatis 属性配置 --------------------
+
+    @Bean
+    @ConfigurationProperties(prefix = "mybatis.primary")
+    public PrimaryMybatisConfigProperties primaryMybatisConfigProperties(){
+        return new PrimaryMybatisConfigProperties();
+    }
+
+    // -------------------- 主库 --------------------
 
     @Bean
     public DataSource primaryDataSource() {
@@ -47,11 +60,12 @@ public class PrimaryDataSourceConfig {
         SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
         sessionFactoryBean.setDataSource(primaryDataSource);
         //Mybatis XML配置文件
-        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver()
-                .getResource(configLocationByYml()));
-        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
-                .getResources(mapperLocationsByYml()));
-        sessionFactoryBean.setTypeAliasesPackage(typeAliasesByYml());
+        //配置mybatis-config.xml
+        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource(primaryMybatisConfigProperties.getConfigLocation()));
+        //配置mapper.xml
+        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(primaryMybatisConfigProperties.getMapperLocationsConfig()));
+        //配置扫描type aliases的包路径
+        sessionFactoryBean.setTypeAliasesPackage(primaryMybatisConfigProperties.getTypeAliasesPackage());
         return sessionFactoryBean.getObject();
     }
 
@@ -67,7 +81,7 @@ public class PrimaryDataSourceConfig {
     }
 
 
-    private String configLocationByYml() {
+    /*private String configLocationByYml() {
         String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
         String key = "mybatis.primary.config-location";
         return YmlUtils.instance().getValue(key, path);
@@ -83,6 +97,6 @@ public class PrimaryDataSourceConfig {
         String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
         String key = "mybatis.primary.type-aliases-package";
         return YmlUtils.instance().getValue(key, path);
-    }
+    }*/
 
 }

+ 3 - 6
src/main/java/com/emato/cus/supervise/config/ds/primary/PrimaryMapperConfig.java

@@ -15,13 +15,10 @@ import org.springframework.context.annotation.Configuration;
  * @date 2017/4/23
  */
 @Configuration
-/*@DependsOn(value = {"primarySqlSessionTemplate"})*/
 public class PrimaryMapperConfig {
 
-    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
-
     @Bean
-    public MapperScannerConfigurer primaryMapperScannerConfigurer() {
+    public static MapperScannerConfigurer primaryMapperScannerConfigurer() {
         MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
         //Mapper接口包
         mapperScannerConfigurer.setBasePackage(mapperPackageByYml());
@@ -36,8 +33,8 @@ public class PrimaryMapperConfig {
      *
      * @return
      */
-    private String mapperPackageByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
+    private static String mapperPackageByYml() {
+        String path = PrimaryMybatisConfigProperties.MYBATIS_MAPPER_CONFIG_YML_PATH;
         String key = "mybatis.primary.mapper-scanner-package";
         return YmlUtils.instance().getValue(key, path);
     }

+ 55 - 0
src/main/java/com/emato/cus/supervise/config/ds/primary/PrimaryMybatisConfigProperties.java

@@ -0,0 +1,55 @@
+package com.emato.cus.supervise.config.ds.primary;
+
+import java.io.Serializable;
+
+/**
+ * @author Scott Chen
+ * 2019-08-21
+ */
+public class PrimaryMybatisConfigProperties implements Serializable {
+    private static final long serialVersionUID = 6050020243309866639L;
+
+    // properties方式配置
+    public static final String MYBATIS_MAPPER_CONFIG_PATH = "mybatis-mapper-config.properties";
+    // yml方式配置
+    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
+
+
+    private String configLocation;
+    private String mapperLocationsConfig;
+    private String typeAliasesPackage;
+    // mapper接口包
+    private String mapperScannerPackage;
+
+    public String getConfigLocation() {
+        return configLocation;
+    }
+
+    public void setConfigLocation(String configLocation) {
+        this.configLocation = configLocation;
+    }
+
+    public String getMapperLocationsConfig() {
+        return mapperLocationsConfig;
+    }
+
+    public void setMapperLocationsConfig(String mapperLocationsConfig) {
+        this.mapperLocationsConfig = mapperLocationsConfig;
+    }
+
+    public String getTypeAliasesPackage() {
+        return typeAliasesPackage;
+    }
+
+    public void setTypeAliasesPackage(String typeAliasesPackage) {
+        this.typeAliasesPackage = typeAliasesPackage;
+    }
+
+    public String getMapperScannerPackage() {
+        return mapperScannerPackage;
+    }
+
+    public void setMapperScannerPackage(String mapperScannerPackage) {
+        this.mapperScannerPackage = mapperScannerPackage;
+    }
+}

+ 21 - 26
src/main/java/com/emato/cus/supervise/config/ds/second/SecondDataSourceConfig.java

@@ -12,6 +12,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.PropertyResolver;
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 import javax.sql.DataSource;
 
@@ -25,11 +26,24 @@ import javax.sql.DataSource;
  * @author Scott Chen
  * @date 2017/4/22
  */
+@EnableTransactionManagement(order = 2)
 @Configuration
 public class SecondDataSourceConfig {
 
-    // yml方式配置
-    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
+    @Autowired
+    private SecondMybatisConfigProperties secondMybatisConfigProperties;
+
+    // -------------------- mybatis 属性配置 --------------------
+
+    @Bean
+    @ConfigurationProperties(prefix = "mybatis.second")
+    public SecondMybatisConfigProperties secondMybatisConfigProperties(){
+        return new SecondMybatisConfigProperties();
+    }
+
+
+    // -------------------- 其它业务库 --------------------
+
 
     @Bean
     public DataSource secondDataSource() {
@@ -46,12 +60,11 @@ public class SecondDataSourceConfig {
     public SqlSessionFactory secondSqlSessionFactory(DataSource secondDataSource) throws Exception  {
         SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
         sessionFactoryBean.setDataSource(secondDataSource);
-        //Mybatis XML配置文件
-        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver()
-                .getResource(configLocationByYml()));
-        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
-                .getResources(mapperLocationsByYml()));
-        sessionFactoryBean.setTypeAliasesPackage(typeAliasesByYml());
+
+        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource(secondMybatisConfigProperties.getConfigLocation()));
+        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(secondMybatisConfigProperties.getMapperLocationsConfig()));
+        sessionFactoryBean.setTypeAliasesPackage(secondMybatisConfigProperties.getTypeAliasesPackage());
+
         return sessionFactoryBean.getObject();
     }
 
@@ -65,22 +78,4 @@ public class SecondDataSourceConfig {
         return new SqlSessionTemplate(secondSqlSessionFactory);
     }
 
-    private String configLocationByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
-        String key = "mybatis.second.config-location";
-        return YmlUtils.instance().getValue(key, path);
-    }
-
-    private String mapperLocationsByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
-        String key = "mybatis.second.mapper-locations-config";
-        return YmlUtils.instance().getValue(key, path);
-    }
-
-    private String typeAliasesByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
-        String key = "mybatis.second.type-aliases-package";
-        return YmlUtils.instance().getValue(key, path);
-    }
-
 }

+ 4 - 6
src/main/java/com/emato/cus/supervise/config/ds/second/SecondMapperConfig.java

@@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList;
 import org.mybatis.spring.mapper.MapperScannerConfigurer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 
 /**
@@ -15,13 +16,10 @@ import org.springframework.context.annotation.Configuration;
  * @date 2017/4/23
  */
 @Configuration
-/*@DependsOn(value = {"secondSqlSessionTemplate"})*/
 public class SecondMapperConfig {
 
-    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
-
     @Bean
-    public MapperScannerConfigurer secondMapperScannerConfigurer() {
+    public static MapperScannerConfigurer secondMapperScannerConfigurer() {
         MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
         //Mapper接口包
         mapperScannerConfigurer.setBasePackage(mapperPackageByYml());
@@ -36,8 +34,8 @@ public class SecondMapperConfig {
      *
      * @return
      */
-    private String mapperPackageByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
+    private static String mapperPackageByYml() {
+        String path = SecondMybatisConfigProperties.MYBATIS_MAPPER_CONFIG_YML_PATH;
         String key = "mybatis.second.mapper-scanner-package";
         return YmlUtils.instance().getValue(key, path);
     }

+ 55 - 0
src/main/java/com/emato/cus/supervise/config/ds/second/SecondMybatisConfigProperties.java

@@ -0,0 +1,55 @@
+package com.emato.cus.supervise.config.ds.second;
+
+import java.io.Serializable;
+
+/**
+ * @author Scott Chen
+ * 2019-08-21
+ */
+public class SecondMybatisConfigProperties implements Serializable {
+    private static final long serialVersionUID = 5782933280075194160L;
+
+    // properties方式配置
+    public static final String MYBATIS_MAPPER_CONFIG_PATH = "mybatis-mapper-config.properties";
+    // yml方式配置
+    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
+
+
+    private String configLocation;
+    private String mapperLocationsConfig;
+    private String typeAliasesPackage;
+    // mapper接口包
+    private String mapperScannerPackage;
+
+    public String getConfigLocation() {
+        return configLocation;
+    }
+
+    public void setConfigLocation(String configLocation) {
+        this.configLocation = configLocation;
+    }
+
+    public String getMapperLocationsConfig() {
+        return mapperLocationsConfig;
+    }
+
+    public void setMapperLocationsConfig(String mapperLocationsConfig) {
+        this.mapperLocationsConfig = mapperLocationsConfig;
+    }
+
+    public String getTypeAliasesPackage() {
+        return typeAliasesPackage;
+    }
+
+    public void setTypeAliasesPackage(String typeAliasesPackage) {
+        this.typeAliasesPackage = typeAliasesPackage;
+    }
+
+    public String getMapperScannerPackage() {
+        return mapperScannerPackage;
+    }
+
+    public void setMapperScannerPackage(String mapperScannerPackage) {
+        this.mapperScannerPackage = mapperScannerPackage;
+    }
+}

+ 21 - 29
src/main/java/com/emato/cus/supervise/config/ds/third/ThirdDataSourceConfig.java

@@ -1,5 +1,6 @@
 package com.emato.cus.supervise.config.ds.third;
 
+import com.emato.cus.supervise.config.ds.second.SecondMybatisConfigProperties;
 import com.emato.cus.supervise.util.YmlUtils;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionFactoryBean;
@@ -12,6 +13,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.PropertyResolver;
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 import javax.sql.DataSource;
 
@@ -25,14 +27,24 @@ import javax.sql.DataSource;
  * @author Scott Chen
  * @date 2017/4/22
  */
+@EnableTransactionManagement(order = 2)
 @Configuration
 public class ThirdDataSourceConfig {
 
-    // yml方式配置
-    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
-
     @Autowired
-    private PropertyResolver propertyResolver;
+    private ThirdMybatisConfigProperties thirdMybatisConfigProperties;
+
+    // -------------------- mybatis 属性配置 --------------------
+
+    @Bean
+    @ConfigurationProperties(prefix = "mybatis.third")
+    public ThirdMybatisConfigProperties thirdMybatisConfigProperties(){
+        return new ThirdMybatisConfigProperties();
+    }
+
+
+    // -------------------- 其它业务库 --------------------
+
 
     @Bean
     public DataSource thirdDataSource() {
@@ -49,12 +61,11 @@ public class ThirdDataSourceConfig {
     public SqlSessionFactory thirdSqlSessionFactory(DataSource thirdDataSource) throws Exception  {
         SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
         sessionFactoryBean.setDataSource(thirdDataSource);
-        //Mybatis XML配置文件
-        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver()
-                .getResource(configLocationByYml()));
-        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
-                .getResources(mapperLocationsByYml()));
-        sessionFactoryBean.setTypeAliasesPackage(typeAliasesByYml());
+
+        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource(thirdMybatisConfigProperties.getConfigLocation()));
+        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(thirdMybatisConfigProperties.getMapperLocationsConfig()));
+        sessionFactoryBean.setTypeAliasesPackage(thirdMybatisConfigProperties.getTypeAliasesPackage());
+
         return sessionFactoryBean.getObject();
     }
 
@@ -68,23 +79,4 @@ public class ThirdDataSourceConfig {
         return new SqlSessionTemplate(thirdSqlSessionFactory);
     }
 
-
-    private String configLocationByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
-        String key = "mybatis.third.config-location";
-        return YmlUtils.instance().getValue(key, path);
-    }
-
-    private String mapperLocationsByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
-        String key = "mybatis.third.mapper-locations-config";
-        return YmlUtils.instance().getValue(key, path);
-    }
-
-    private String typeAliasesByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
-        String key = "mybatis.third.type-aliases-package";
-        return YmlUtils.instance().getValue(key, path);
-    }
-
 }

+ 4 - 6
src/main/java/com/emato/cus/supervise/config/ds/third/ThirdMapperConfig.java

@@ -1,5 +1,6 @@
 package com.emato.cus.supervise.config.ds.third;
 
+import com.emato.cus.supervise.config.ds.second.SecondMybatisConfigProperties;
 import com.emato.cus.supervise.util.YmlUtils;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
@@ -15,13 +16,10 @@ import org.springframework.context.annotation.Configuration;
  * @date 2017/4/23
  */
 @Configuration
-/*@DependsOn(value = {"thirdSqlSessionTemplate"})*/
 public class ThirdMapperConfig {
 
-    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
-
     @Bean
-    public MapperScannerConfigurer thirdMapperScannerConfigurer() {
+    public static MapperScannerConfigurer thirdMapperScannerConfigurer() {
         MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
         //Mapper接口包
         mapperScannerConfigurer.setBasePackage(mapperPackageByYml());
@@ -36,8 +34,8 @@ public class ThirdMapperConfig {
      *
      * @return
      */
-    private String mapperPackageByYml() {
-        String path = MYBATIS_MAPPER_CONFIG_YML_PATH;
+    private static String mapperPackageByYml() {
+        String path = ThirdMybatisConfigProperties.MYBATIS_MAPPER_CONFIG_YML_PATH;
         String key = "mybatis.third.mapper-scanner-package";
         return YmlUtils.instance().getValue(key, path);
     }

+ 55 - 0
src/main/java/com/emato/cus/supervise/config/ds/third/ThirdMybatisConfigProperties.java

@@ -0,0 +1,55 @@
+package com.emato.cus.supervise.config.ds.third;
+
+import java.io.Serializable;
+
+/**
+ * @author Scott Chen
+ * 2019-08-21
+ */
+public class ThirdMybatisConfigProperties implements Serializable {
+    private static final long serialVersionUID = 5782933280075194160L;
+
+    // properties方式配置
+    public static final String MYBATIS_MAPPER_CONFIG_PATH = "mybatis-mapper-config.properties";
+    // yml方式配置
+    public static final String MYBATIS_MAPPER_CONFIG_YML_PATH = "application.yml";
+
+
+    private String configLocation;
+    private String mapperLocationsConfig;
+    private String typeAliasesPackage;
+    // mapper接口包
+    private String mapperScannerPackage;
+
+    public String getConfigLocation() {
+        return configLocation;
+    }
+
+    public void setConfigLocation(String configLocation) {
+        this.configLocation = configLocation;
+    }
+
+    public String getMapperLocationsConfig() {
+        return mapperLocationsConfig;
+    }
+
+    public void setMapperLocationsConfig(String mapperLocationsConfig) {
+        this.mapperLocationsConfig = mapperLocationsConfig;
+    }
+
+    public String getTypeAliasesPackage() {
+        return typeAliasesPackage;
+    }
+
+    public void setTypeAliasesPackage(String typeAliasesPackage) {
+        this.typeAliasesPackage = typeAliasesPackage;
+    }
+
+    public String getMapperScannerPackage() {
+        return mapperScannerPackage;
+    }
+
+    public void setMapperScannerPackage(String mapperScannerPackage) {
+        this.mapperScannerPackage = mapperScannerPackage;
+    }
+}