当前位置: 首页 > news >正文

nh网站建设广东微信网站制作报价表

nh网站建设,广东微信网站制作报价表,郑州网站app开发的,公司网站谁负责做上一节我们简单阐述了springboot多数据源如何配置。在实际的业务场景中我们常常遇到A服务依赖于B服务jar包,A服务和B服务业务数据分别入自己的库中。为何要这么做呢?比如B服务是日志SDK,A服务集成B服务来实现记录日志的功能,但是日…

上一节我们简单阐述了springboot多数据源如何配置。在实际的业务场景中我们常常遇到A服务依赖于B服务jar包,A服务和B服务业务数据分别入自己的库中。为何要这么做呢?比如B服务是日志SDK,A服务集成B服务来实现记录日志的功能,但是日志库和业务库又不是一个库,这种场景要求B服务相对简单,如果B服务比较繁杂,可以使用InnerAPI来实现该功能。

如何实现

B服务 ocean-syslog

  1. 服务配置 application-log.yml
spring:datasource:secondary:driver-class-name: com.mysql.cj.jdbc.Driverjdbc-url: jdbc:mysql://localhost:3306/db-log?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=trueusername: rootpassword: 123456
  1. 配置数据源和SqlSessionFactory
package com.angel.ocean.config;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;@Configuration
@MapperScan(basePackages = "com.angel.ocean.log.mapper", sqlSessionFactoryRef = "secondarySqlSessionFactory")
public class SecondaryMyBatisConfig {@Bean(name = "secondaryDataSource")@ConfigurationProperties(prefix = "spring.datasource.secondary")public DataSource secondaryDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "secondarySqlSessionFactory")public SqlSessionFactory secondarySqlSessionFactory(@Qualifier("secondaryDataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/log/*.xml"));return sessionFactoryBean.getObject();}@Bean(name = "secondaryTransactionManager")public DataSourceTransactionManager secondaryTransactionManager(@Qualifier("secondaryDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}
}
  1. B服务代码截图
    在这里插入图片描述

A服务 ocean-syslog-demo

  1. 服务配置 application.yml
server:port: 8000spring:datasource:primary:driver-class-name: com.mysql.cj.jdbc.Driverjdbc-url: jdbc:mysql://localhost:3306/db-ocean?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=trueusername: rootpassword: 123456config:import: classpath:application-log.yml

注意:

A服务不能直接使用B的配置文件(application-log.yml),需要在A服务的配置文件(application.yml)引入才可以,spring.config.import = classpath:application-log.yml.

  1. 配置数据源和SqlSessionFactory
package com.angel.ocean.config;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;@Configuration
@MapperScan(basePackages = "com.angel.ocean.mapper", sqlSessionFactoryRef = "primarySqlSessionFactory")
public class PrimaryMyBatisConfig {@Primary@Bean(name = "primaryDataSource")@ConfigurationProperties(prefix = "spring.datasource.primary")public DataSource primaryDataSource() {return DataSourceBuilder.create().build();}@Primary@Bean(name = "primarySqlSessionFactory")public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));return sessionFactoryBean.getObject();}@Primary@Bean(name = "primaryTransactionManager")public DataSourceTransactionManager primaryTransactionManager(@Qualifier("primaryDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}
}
  1. 引入B服务
<dependency><groupId>com.angel.ocean</groupId><artifactId>ocean-syslog</artifactId><version>1.0.0</version>
</dependency>
  1. A服务代码截图

在这里插入图片描述
5. 启动类

package com.angel.ocean;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;@EnableTransactionManagement
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

运行截图:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

http://www.yayakq.cn/news/10362/

相关文章:

  • 做电影网站如何推广方案市场推广策略 包括哪些
  • 笔趣阁建站教程搭建视频播放网站
  • 网站后台的形成沈阳专业做网站方案
  • 优购物官方网站 商城直播代运营公司
  • 企业网站建设内容 程序开发商城网站html
  • 网站设计与网页制作团队论坛模板
  • 如何备份网站数据库智能建造专业学什么
  • xx旅行社网站建设方案 企网站技术解决方案为申请虚拟主机研发管理系统软件
  • 做柜子喜欢上哪些网站看wordpress添加搜索关键字
  • 资讯类网站怎么做wordpress网站提速
  • 毕业设计做课程网站好宿迁网站定制
  • 建网站需要什么条件房产中介
  • 杭州响应式网站案例百度无锡营销中心
  • 贵州网站备案游戏平台十大排名
  • 网站建设江阴百度教育
  • 社区网站建设工作职责公司官网定制
  • 查建设工程规划许可证网站门户设计
  • 滦南网站建设网络营销哪家比较专业
  • 网站域名做301网站域名怎么查
  • 网站建设王滨1983佛山做企业网站公司
  • 做网站九州科技网站内链
  • 长沙网站优化步骤揭东建设局网站
  • 免费的行情网站app网页虚拟服务器搭建
  • 网站如何买空间网站的建设需要多少
  • 口碑好的江苏网站建设数据型网站
  • wordpress网站速度东莞常平玛莱妇产医院
  • 气象网站建设需求方案温州网站推广站建设
  • 网站开发的缺点更合网站设计
  • 大型网站如何优化做网站去哪找源码
  • 东莞住房和城乡建设厅网站网站建设行业分析