说明:
本文主要用于记录当时自己项目中集成的步骤,zdal 使用单库单表,多库多表等后续更新
一、sofa zdal依赖,排除了一些不用的选项
com.alipay.boot
zdal4-jdbc-spring-boot-starter
1.1.0
com.alipay.kmi
*
org.slf4j
slf4j-log4j12
org.springframework
spring
com.alipay.common
tracer-biz
com.alipay.common
tracer
com.alipay.drm
drm-client
com.taobao.configserver
*
com.alipay.configserver
*
com.taobao.logstat
*
com.alipay.sofa
*
com.alipay.sofa.common.log
sofa-middleware-log
org.slf4j
log4j-over-slf4j
provided
二、集成配置
1. 在项目resources下新建文件 zdal/config/db/cxinscn-doc-dev-ds.xml数据源配置xml具体内容如下
注意:该文件的命名规范为 {appname}-{environmentId}-ds.xml。
singleM_0
2.在 Spring 配置中添加 zdal 数据源与mybits集成,在项目resources下新建 resource/META-INF/spring/spring-mybatis.xml,命名随意
3.在 application-dev.properties 添加sofa一些配置
zdal.jdbc.dbmode=dev 设置开发环境运行
4.在spring boot 启动类(Application) 中通过@ImportResource 读取数据源配置xml。
package com.cathay;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ImportResource;
@ImportResource({"classpath*:META-INF/spring/*.xml","classpath*:META-INF/cxinscn-doc/*.xml","classpath*:config/*.xml"})
@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class})
public class DocApplication {
// init the logger
private static final Logger logger = LoggerFactory.getLogger(DocApplication.class);
public static void main(String[] args){
System.setProperty("spring.profiles.active","dev");
SpringApplication springApplication = new SpringApplication(DocApplication.class);
ApplicationContext applicationContext = springApplication.run(args);
if (logger.isInfoEnabled()){
logger.info("application start");
}
}
}