更新时间:2025-03-03 gmt 08:00
使用rainbow sdk(spring cloud框架)-j9九游会登录
引入rainbow sdk
- 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。
- 引入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;
父主题:
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨