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

唐山正规做网站的公司哪家好特殊字体生成器

唐山正规做网站的公司哪家好,特殊字体生成器,谁分享一个免费网站2021,高端网站建设品牌多数据源(数据源进行切换) AbstractRoutingDataSource 根据用户定义的规则选择当前的数据源#xff0c;这样我们可以在执行查询之前#xff0c;设置使用的数据源。实现可动态路由的数据源#xff0c;在每次数据库查询操作前执行。它的抽象方法 determineCurrentLookupKey()…多数据源(数据源进行切换) AbstractRoutingDataSource 根据用户定义的规则选择当前的数据源这样我们可以在执行查询之前设置使用的数据源。实现可动态路由的数据源在每次数据库查询操作前执行。它的抽象方法 determineCurrentLookupKey() 决定使用哪个数据源。 1、application.yml中配置多个数据源 # Orderspring.datasource.order.urljdbc:mysql://localhost:3306/seata_order?useUnicodetruecharacterEncodingutf8allowMultiQueriestrueuseSSLfalsespring.datasource.order.usernamerootspring.datasource.order.password123456spring.datasource.order.driver-class-namecom.mysql.cj.jdbc.Driver# Storagespring.datasource.storage.urljdbc:mysql://localhost:3306/seata_storage?useUnicodetruecharacterEncodingutf8allowMultiQueriestrueuseSSLfalsespring.datasource.storage.usernamerootspring.datasource.storage.password123456spring.datasource.storage.driver-class-namecom.mysql.cj.jdbc.Driver# Payspring.datasource.pay.urljdbc:mysql://localhost:3306/seata_pay?useUnicodetruecharacterEncodingutf8allowMultiQueriestrueuseSSLfalsespring.datasource.pay.usernamerootspring.datasource.pay.password123456spring.datasource.pay.driver-class-namecom.mysql.cj.jdbc.Driver 2、主启动类添加注解 SpringBootApplication     MapperScan(com.example.demo.mapper) 3、编写配置类 Getterpublic enum DataSourceKey {     /**     * Order data source key.     */    ORDER,     /**     * Storage data source key.     */    STORAGE,     /**     * Pay data source key.     */    PAY,} public class DynamicDataSourceContextHolder {     private static final ThreadLocalString CONTEXT_HOLDER ThreadLocal.withInitial(DataSourceKey.ORDER::name);     private static ListObject dataSourceKeys new ArrayList();     public static void setDataSourceKey(DataSourceKey key) {         CONTEXT_HOLDER.set(key.name());    }     public static String getDataSourceKey() {         return CONTEXT_HOLDER.get();    }     public static void clearDataSourceKey() {         CONTEXT_HOLDER.remove();    }     public static ListObject getDataSourceKeys() {         return dataSourceKeys;    }} public class DynamicRoutingDataSource extends AbstractRoutingDataSource {     Override     protected Object determineCurrentLookupKey() {         //log.info(当前数据源 [{}], DynamicDataSourceContextHolder.getDataSourceKey());        return DynamicDataSourceContextHolder.getDataSourceKey();    }} Configurationpublic class DataSourceProxyConfig {     Bean(originOrder)     ConfigurationProperties(prefix spring.datasource.order)     public DataSource dataSourceMaster() {         return new DruidDataSource();    }     Bean(originStorage)     ConfigurationProperties(prefix spring.datasource.storage)     public DataSource dataSourceStorage() {         return new DruidDataSource();    }     Bean(originPay)     ConfigurationProperties(prefix spring.datasource.pay)     public DataSource dataSourcePay() {         return new DruidDataSource();    }     Bean(name order)     public DataSourceProxy masterDataSourceProxy(Qualifier(originOrder) DataSource dataSource) {         return new DataSourceProxy(dataSource);    }     Bean(name storage)     public DataSourceProxy storageDataSourceProxy(Qualifier(originStorage) DataSource dataSource) {         return new DataSourceProxy(dataSource);    }     Bean(name pay)     public DataSourceProxy payDataSourceProxy(Qualifier(originPay) DataSource dataSource) {         return new DataSourceProxy(dataSource);    }     Bean(dynamicDataSource)     public DataSource dynamicDataSource(Qualifier(order) DataSource dataSourceOrder,                                         Qualifier(storage) DataSource dataSourceStorage,                                         Qualifier(pay) DataSource dataSourcePay) {        DynamicRoutingDataSource dynamicRoutingDataSource new DynamicRoutingDataSource();        MapObject, Object dataSourceMap new HashMap(3);        dataSourceMap.put(DataSourceKey.ORDER.name(), dataSourceOrder);        dataSourceMap.put(DataSourceKey.STORAGE.name(), dataSourceStorage);        dataSourceMap.put(DataSourceKey.PAY.name(), dataSourcePay);        dynamicRoutingDataSource.setDefaultTargetDataSource(dataSourceOrder);        dynamicRoutingDataSource.setTargetDataSources(dataSourceMap);        DynamicDataSourceContextHolder.getDataSourceKeys().addAll(dataSourceMap.keySet());         return dynamicRoutingDataSource;    }     Bean    ConfigurationProperties(prefix mybatis-plus)  // MybatisSqlSessionFactoryBean中有各种MybatisPlus的配置属性(globalConfig、mapperLocations} 而SqlSessionFactoryBean中则是mybatis的各种配置属性(typeAlies、mapperLocations)      public MybatisSqlSessionFactoryBean sqlSessionFactoryBean(Qualifier(dynamicDataSource) DataSource dataSource) {         // 这里用 MybatisSqlSessionFactoryBean 代替了 SqlSessionFactoryBean否则 MyBatisPlus 不会生效        MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean new MybatisSqlSessionFactoryBean();        mybatisSqlSessionFactoryBean.setDataSource(dataSource);         return mybatisSqlSessionFactoryBean;    }} 调用切换数据源 GlobalTransactionalOverridepublic OperationResponse placeOrder(PlaceOrderRequestVO placeOrderRequestVO) throws Exception {     DynamicDataSourceContextHolder.setDataSourceKey(DataSourceKey.ORDER);//切换数据源    Integer amount 1;    Integer price placeOrderRequestVO.getPrice();    Order order Order.builder().build();    Integer saveOrderRecord orderDao.insert(order);     // 扣减库存    boolean operationStorageResult storageService.reduceStock(placeOrderRequestVO.getProductId(), amount);     // 扣减余额    boolean operationBalanceResult payService.reduceBalance(placeOrderRequestVO.getUserId(), price);     DynamicDataSourceContextHolder.setDataSourceKey(DataSourceKey.ORDER);//切换数据源    order.setStatus(OrderStatus.SUCCESS);    Integer updateOrderRecord orderDao.updateById(order);     return success(operationStorageResult operationBalanceResult);} 项目启动报错Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured 原因导入spring-mybatis依赖后springboot启动时会自动加载数据源由于dataSource配置成多数据源加载不到spring.datasource.url故而报错。 解决1、主启动类添加SpringBootApplication(exclude DataSourceAutoConfiguration.class) 2、若上面配置还是无法解决可以配置一个默认数据源让其启动时加载(不影响,会被多数据源切换时覆盖的)spring.datasource.url 额外 SqlSessionFactory factorynew SqlSessionFactoryBuilder().build(in); SqlSession sqlSessionfactory.openSession(); //sqlSession就是用来操作sql语句的 使用 MyBatis-Spring 之后, 会使用SqlSessionFactoryBean来代替SqlSessionFactoryBuilder创建SqlSessionFactory MybatisPlus需要使用MybatisSqlSessionFactoryBean。
http://www.hkea.cn/news/14460275/

相关文章:

  • 成都网站推广wordpress wp rss
  • 可信网站图标 费流量视频链接生成器
  • 做一个电商网站网站不备案什么意思
  • 做网站卖掉网站后台字体安装
  • 做电销有什么资料网站免费自学网
  • 网站建设方案硬件支撑上海三凯监理建设管理咨询公司网站
  • 电商类网站开发山东省住房与城乡建设网站
  • 关于建设公司网站的申请自己开一个培训机构流程
  • 三优科技 网站开发18款禁用app软件免费下载
  • 手机网站pc网站网站开发最新教程
  • 上海嘉定做网站公司手机网站定制 杭州
  • 制作游戏网站公司wordpress上传主机
  • 政务网站源码网站设计公司山东烟台
  • php网站开发个人3d模型代做网站
  • 欧美色影网站网页设计网站开发需要什么软件
  • 那种退不掉的网站怎么做的江苏泗阳今天新增病例多少
  • 活动 网站 源码制作英文网站多少钱
  • 网站托管服务合同网站新闻页设计
  • 设计做网站哪家公司好珠海斗门网站建设
  • 网络营销网站建设与策划分析深圳网站制作比较好公司
  • 网站备案审核响应式网站 哪些
  • 自己做有趣的网站网站建设零基础教学
  • 网站建设的作业模板浙江建设网站是多少
  • 集团网站群网站功能模块 分析
  • wordpress ftp 更新seo 能提高网站速度吗
  • 河池网站推广深圳宝安区核酸检测点
  • 浙江建设职业技术学院迎新网站seo外包模板
  • 网站推广目标计划网站设计制作多少钱
  • 交三百能在网站上找兼职做的在百度建免费网站吗
  • php网站后台密码忘记了怎么办手机免费建站教程