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

做品牌网站哪个好用seo关键词挖掘工具

做品牌网站哪个好用,seo关键词挖掘工具,移动端关键词优化,兰州新区建设局网站地址在我们日常的开发中#xff0c;经常会用到一个项目中使用多个数据源的问题#xff0c;本次就带你了解怎样在spring boot项目中使用mybatis整合多个数据源的示例。使用spring boot3.5版本 1、创建一个spring boot项目#xff0c;并引入相应的maven依赖 dependencies…在我们日常的开发中经常会用到一个项目中使用多个数据源的问题本次就带你了解怎样在spring boot项目中使用mybatis整合多个数据源的示例。使用spring boot3.5版本 1、创建一个spring boot项目并引入相应的maven依赖 dependenciesdependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-openapi3-jakarta-spring-boot-starter/artifactIdversion4.5.0/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion3.0.3/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.20/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies2、在配置文件中设置相应的连接信息 spring:datasource:# 主数据源zh:jdbc-url: jdbc:mysql://localhost:3306/zh?useSSlfalseuseUnicodetruecharacterEncodingutf-8serverTimezoneUTCusername: rootpassword: 123456type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driver# 次数据源en:jdbc-url: jdbc:mysql://localhost:3306/en?useSSlfalseuseUnicodetruecharacterEncodingutf-8serverTimezoneUTCusername: rootpassword: 123456type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driver mybatis:mapper-locations: classpath:/mapper/**/*.xmlconfiguration:map-underscore-to-camel-case: true 这里需要注意的一点是我们引入了mybatis-springboot的自动装配的依赖那么项目在启动的时候会检查我们有没有配置默认的数据源连接信息如果没有配置会报错。这个时候我们有两种解决思路。一种是在配置文件中指定一下连接信息但是这个数据连接信息我们不用另一种是把数据源自动配置的bean给排除掉。需要在启动类上指定 SpringBootApplication(exclude {DataSourceAutoConfiguration.class}) 3、手动指定多数据源的连接配置 我的项目中是指定了两套数据源分别为zh、en。我只需要配置两套数据连接信息即可 配置zh数据库的连接配置 Configuration MapperScan(basePackages com.zq.testmybatis.mapper.zh,sqlSessionFactoryRef zhSqlSessionFactory ) public class ZhMyBatisConfig {/*** 创建并返回一个以 spring.datasource.zh 为前缀的配置属性绑定的数据源对象。** return DataSource 对象*/PrimaryBeanConfigurationProperties(prefix spring.datasource.zh)public DataSource zhDataSource() {return DataSourceBuilder.create().build();}/*** 创建中文数据库SQL会话工厂。** param dataSource 数据源必须被标注为Qualifier(zhDataSource)* return SqlSessionFactory 对象* throws Exception 抛出异常*/PrimaryBeanpublic SqlSessionFactory zhSqlSessionFactory(Qualifier(zhDataSource) DataSource dataSource) throws Exception {SqlSessionFactoryBean sessionFactory new SqlSessionFactoryBean();sessionFactory.setDataSource(dataSource);// 重点手动启用驼峰映射org.apache.ibatis.session.Configuration configuration new org.apache.ibatis.session.Configuration();configuration.setMapUnderscoreToCamelCase(true); // 启用驼峰映射sessionFactory.setConfiguration(configuration);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(classpath:mapper/zh/**/*.xml));return sessionFactory.getObject();}/*** 创建一个名为zhSqlSessionTemplate的SqlSessionTemplate对象该对象使用名为zhSqlSessionFactory的SqlSessionFactory。** param sqlSessionFactory 类型为SqlSessionFactory用于创建SqlSessionTemplate对象的SqlSessionFactory。* return 返回类型为SqlSessionTemplate的zhSqlSessionTemplate对象。*/PrimaryBeanpublic SqlSessionTemplate zhSqlSessionTemplate(Qualifier(zhSqlSessionFactory) SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);} }配置en数据库的连接信息 Configuration MapperScan(basePackages com.zq.testmybatis.mapper.en,sqlSessionFactoryRef enSqlSessionFactory ) public class EnMyBatisConfig {/*** 创建并返回一个名为 enDataSource 的数据源。** return 返回一个配置为 spring.datasource.en 前缀的配置属性的数据源*/BeanConfigurationProperties(prefix spring.datasource.en)public DataSource enDataSource() {return DataSourceBuilder.create().build();}/*** 创建一个 SqlSessionFactory Bean使用指定的数据源。** param dataSource 数据源通过 Qualifier 注解指定* return SqlSessionFactory 对象* throws Exception 如果在创建 SqlSessionFactory 过程中发生异常*/Beanpublic SqlSessionFactory enSqlSessionFactory(Qualifier(enDataSource) DataSource dataSource) throws Exception {SqlSessionFactoryBean sessionFactory new SqlSessionFactoryBean();sessionFactory.setDataSource(dataSource);// 重点手动启用驼峰映射org.apache.ibatis.session.Configuration configuration new org.apache.ibatis.session.Configuration();configuration.setMapUnderscoreToCamelCase(true); // 启用驼峰映射sessionFactory.setConfiguration(configuration);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(classpath:mapper/en/**/*.xml));return sessionFactory.getObject();}/*** 创建一个SqlSessionTemplate对象** param sqlSessionFactory 数据库会话工厂通过Qualifier注解指定使用enSqlSessionFactory* return 返回创建的SqlSessionTemplate对象*/Beanpublic SqlSessionTemplate enSqlSessionTemplate(Qualifier(enSqlSessionFactory) SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);} }这里需要我们注意的主要有两点mapper接口的扫射路径、XML文件的扫射路径 还有一点要注意的是由于我们是手动指定了XML路径的连接信息所有如果spring项目在启动时扫描到你指定的XML地址下没有相应的XML文件时项目会报错。 4、使用多数据源 配置好了以上的所有信息之后我们就可以正常的使用mapper接口来进行数据操作了。这里要提醒的一点是两个数据源的mapper接口尽量不要相同因为我们是在同一个spring boot中也就是这两个mapper接口都会被扫描到IOC容器中。 RestController public class TestController { Resourceprivate EnUserMapper enUserMapper; Resourceprivate ZhUserMapper zhUserMapper; PostMapping(/addEnUser) public String addEnUser(RequestBody EnUser enUser) {enUserMapper.insert(enUser);return success; } GetMapping(/getEnUser) public ListEnUser getEnUser() {return enUserMapper.listAll(); }PostMapping(/addZHUser)public String addZhUser(RequestBody ZhUser zhUser) {zhUserMapper.insert(zhUser);return success;} GetMapping(/getZhUser)public ListZhUser getZhUser() {return zhUserMapper.listAll();}}就和我们正常使用一样就可以了 5、多数据源的事务一致性 在单个数据源中我们只需要使用Transactional注解就能保证事务的一致性但是在多数据源中不行但是同样有解决的办法我们可以使用JTA分布式事务Atomikos或者分布式事务seata 首先介绍一下JTA是基于XA协议的两阶段提交2PC属于Java EE规范的一部分。事务由应用服务器如WebLogic、JBoss的事务管理器TM协调数据库作为资源管理器RM实现XA接口它的工作流程为 阶段一TM询问所有RM是否可提交RM锁定资源并返回准备状态。 阶段二TM根据RM反馈决定全局提交或回滚。特点强一致性但存在同步阻塞阶段一锁定资源和单点故障风险。 seata是阿里巴巴开源分布式事务框架相应的特性可以看我之前写的这篇文章 seata的快速入门和实战_seata快速入门-CSDN博客 维度JTA/XASeata事务模型基于XA协议的2PC支持AT、TCC、Saga、XA多种模式一致性强一致性实时生效AT模式为最终一致性TCC/XA为强一致性性能低阶段一长期锁资源高AT模式一阶段提交释放锁14侵入性无代码侵入依赖数据库XA驱动AT模式无侵入TCC需业务编码补偿逻辑57架构依赖强依赖应用服务器如WebLogic独立中间件与Spring Cloud等微服务框架集成26资源要求数据库需支持XA协议AT模式无需XA驱动仅需本地事务支持13锁机制数据库行锁AT模式通过全局锁lock_table避免脏写 这两种方法都能解决多数据源的数据不一致问题具体使用哪一种就看你自己的业务场景了。
http://www.dnsts.com.cn/news/125452.html

相关文章:

  • 万能建站网站杭州企业标志设计
  • 公司电商网站建设费用怎么记账网站设计与建设书
  • 重庆公司做网站商城小程序开发需要多少钱
  • 奉贤集团网站建设禁用wordpress裁剪
  • 网站内容创意网站数据库在空间吗
  • 找做玻璃的网站厦门电子商务网站建设
  • 成都网站制作长沙伪静态网站搬迁
  • 下什么软件做网站公司主页网址
  • html5网站多少钱淘宝网站制作培训
  • 南昌市建设局网站大连网站建设讯息
  • 做网站要租服务器吗关于网站建设的软文
  • 如何学网站开发盐田区网站建设
  • 网站建设的基础知识与维护wordpress.php扩张
  • 流程图在线制作网站广州网站建设藤虎
  • 江津做电子商务网站笑话网站 wordpress
  • 腾讯云 wordpress建站百度惠生活商家入驻
  • 工信部怎么查网站备案创意设计素描
  • 网站的标题与关键词南京定制网站建设怎么收费
  • 网站怎么推广出去网站怎么做关键字
  • 遵义建设厅网站首页国外企业合作的网站
  • 海南省城乡住房建设厅网站微商城系统开发商
  • 有没有做会计的网站昆明网络建设
  • 个人网站模板怎么做网站需求分析问题
  • 那些网站是用python做的毕业设计商城网站开发
  • 住房城乡建设部网站首页厦门建行网站
  • 晋江网站建设哪家公司专业公司内部网站的作用
  • 汕头网站推广费用浦口区建设网站
  • 上海网安备案网站浙江网站开发工程师
  • 个人在线视频播放网站搭建下载软件的网站推荐
  • 肇庆市建设局网站广州网站建设网站优化网站推广