j9九游会登录/ 应用平台 appstage/ sdk参考/ / / 使用rainbow sdk(spring cloud框架)
更新时间:2025-03-03 gmt 08:00

使用rainbow sdk(spring cloud框架)-j9九游会登录

引入rainbow sdk

  1. rainbow sdk依赖cloud map的注册和发现能力,在引入rainbow sdk之前,要先引入sts sdk和cloud map sdk,并完成sts和cloud map的初始化,具体请参见使用sts sdk(spring cloud框架)使用cloud map sdk(spring cloud框架)

    使用cloud map进行数据库注册和发现时,需要先在wisedba管理台配置连接信息,并注册到cloud map中,rainbow sdk连接数据库的过程中,直接调用cloud map中的注册信息,具体操作请参见新增数据库sdk配置并注册到cloud map

  2. 引入rainbow sdk。

    在pom.xml中添加rainbow sdk依赖。

    • 将${rainbow-sdk-version}替换成实际所使用的rainbow sdk版本。
    • 如果将sdk放到外部maven仓中,则只需要添加rainbow-proxy依赖。
    • 如果采用本地依赖的方式引入sdk,即手动将本地下载的sdk jar包引入到工程的lib目录下,还需要添加间接依赖:rainbow-core-drds、gpaas-middleware-common。
       
        com.huawei.wisecloud.nuwa   
        rainbow-proxy  
        ${rainbow-sdk-version}
    

初始化rainbow sdk

代码如下:

package com.huawei.demo.serviceb.config;
import javax.sql.datasource;
import org.mybatis.spring.sqlsessionfactorybean;
import org.mybatis.spring.mapper.mapperscannerconfigurer;
import org.springframework.context.environmentaware;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.context.annotation.dependson;
import org.springframework.context.annotation.import;
import org.springframework.core.ordered;
import org.springframework.core.annotation.order;
import org.springframework.core.env.environment;
import org.springframework.jdbc.core.jdbctemplate;
import org.springframework.jdbc.datasource.datasourcetransactionmanager;
import org.springframework.transaction.support.transactiontemplate;
import com.huawei.nuwa.map.client.nuwamapclient;
import com.huawei.nuwa.map.spring.boot.autoconfigure.nuwacloudmapautoconfiguration;
import com.huawei.rainbow.jdbc.dbgroupdatasource;
import com.huawei.wisesecurity.sts.springboot.security.configuration.stsencryptablepropertiesconfiguration;
/**
 * rainbow启动
 */
@configuration
@order(ordered.highest_precedence)
@import(value = {nuwacloudmapautoconfiguration.class, stsencryptablepropertiesconfiguration.class})
public class applicationautoconfig implements environmentaware {
    private environment environment;
    /**
     * rainbow需要依赖sts和cloud map启动,创建datasource
     *
     * @param client nuwamapclient值对象
     * @return datasource 初始化完成的数据源数据源
     */
    @bean
    @dependson({"stsbootstrap"})
    public datasource createdatasource(nuwamapclient client) {
        dbgroupdatasource datasource = new dbgroupdatasource();
        datasource.setusests(true);
        datasource.setappname(environment.getproperty("wisedba.appname"));
        datasource.setdbgroupkey(environment.getproperty("wisedba.groupkey"));
        datasource.setdbname(environment.getproperty("wisedba.dbname"));
        datasource.init();
        return datasource;
    }
    /**
     * 事务管理创建
     *
     * @param datasource 数据源
     * @return datasourcetransactionmanager 事务管理
     */
    @bean
    public datasourcetransactionmanager createtransaction(datasource datasource) {
        datasourcetransactionmanager transaction = new datasourcetransactionmanager();
        transaction.setdatasource(datasource);
        return transaction;
    }
    @bean
    public jdbctemplate createjdbctemplate(datasource datasource) {
        return new jdbctemplate(datasource);
    }
    @bean("sqlsessionfactorybean")
    public sqlsessionfactorybean createmybatissqlsessionfactorybean(datasource datasource) {
        sqlsessionfactorybean sessionfactorybean = new sqlsessionfactorybean();
        sessionfactorybean.setdatasource(datasource);
        // 数据源配置项
        org.apache.ibatis.session.configuration configuration = new org.apache.ibatis.session.configuration();
        // 允许jdbc自动生成主键
        configuration.setusegeneratedkeys(true);
        // 使用列标签代替列名
        configuration.setusecolumnlabel(true);
        // 打开下划线命名自动转换为驼峰命名开关
        configuration.setmapunderscoretocamelcase(true);
        sessionfactorybean.setconfiguration(configuration);
        return sessionfactorybean;
    }
    @bean
    public transactiontemplate createtransactiontemplate(datasourcetransactionmanager datasourcetransactionmanager) {
        transactiontemplate template = new transactiontemplate();
        template.settransactionmanager(datasourcetransactionmanager);
        return template;
    }
    @bean
    public mapperscannerconfigurer createmapperscannerconfigurer() {
        mapperscannerconfigurer configurer = new mapperscannerconfigurer();
        configurer.setbasepackage("com.huawei.demo");
        configurer.setsqlsessionfactorybeanname("sqlsessionfactorybean");
        return configurer;
    }
    @override
    public void setenvironment(environment environment) {
        this.environment = environment;

相关文档

网站地图