TA的博客

192

在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一种数据,而且在大数据量的业务下通常都会有多个数据源的。最近恰好工作上遇到一个SpringBoot+Mybatis框架的多数据源配置切换的业务,所以就研究了一下关于Springboot+Mybatis多数据源切换。1.多数据源常见解决方案正常情况下,我们操作数据是通过配置一个DataSource数据源来连接数据库,然后绑定给S...

1.MySQL分表分库底层设计原理2.MySQ分表分库如何查询呢?3.分表分库JOIN连表如何查询4.分表分库之后分页如何查询5.分表分库之后分布式事务如何处理6.分表分库聚合函数如何查询7.分表分库分片策略有哪些8.分表分库后数据如何平滑扩容9.不同场景下如何选择分片算法10.谈谈MySQL启动流程和架构原理11.myisam和innodb索引底层结构12.为什么InnoDb引擎表必须有主...

使用idea提交代码的时候可能会遇到想要忽略的文件夹出现在提交列表中的情况。以.idea目录举例。假如之前没将.idea目录添加到.gitignore文件中,提交代码的时候又把.idea目录提交上去了,那后面再在.gitignore文件中添加.idea目录是不会让提交列表中的.idea目录消失的,这个时候我们就需要使用命令删除暂存区中的.idea目录。gitrm--cached<fil...

其实是没有直接让远端代码回复到某次的指令,实现撤销push的思路如下:1.先让代码恢复到想要恢复的前一次提交记录2.重新提交代码,覆盖端上的代码,就相当于撤销了push的提交实现方式如下:1.首先使用gitlog找到要回退版本的commit版本号;2.gitreset--hard<版本号>,撤回到需要的版本;注意在执行命令之前先把当前工作拷贝一份,不然--hard会将修改全部丢失...

开发中,我们通常会使用maven内置的脚手架也就是archetype来快速生成项目结构。但是在开发中,你会发现maven预先提供的archetyp远远不够,每次新建一个项目,我们都需要从现有的项目copypom.xml,spring的配置文件,一些公共的工具类等,对于多module项目,我们还需要去创建各个module。在这样的背景下,我们就需要使用maven的archetype去定义一个自...

这两天电脑突然坏了,鼠标不能正常移动了,起初以为是系统出了问题,就在网上搜索了一波教程,下载了一个一键装机工机具,没想到重装系统之后连鼠标都没有了!!!毫无疑问,装机工具给我安装的系统不对劲,作为计算机专业出身而且是程序汪的我怎么能把电脑带去电脑维修店呢!!!于是就又上网寻找了一波教程,终于找到了,并成功将系统还原而且是win10官方纯净版本的,没有Ghost安装带来的各种附带软件,弹窗广告...

引言上篇我们着重对Spring编程式事物进行了源码阅读以及原理分析,了解了Spring事物的运行原理,但这种管理事务的方式的代码侵入行非常高,现在开发基本不会使用这个,而且现在Java开发基本都会使用SpringBoot,配合SpringBoot的自动配置,声明式事物简直不要太好用!本篇就深入SpringBoot源码,看看@EnableTransactionManagement配合@Tran...

引言Spring提供了两种事物管理实现方式:编程式事务管理:编程式事务管理使用TransactionTemplate可实现更细粒度的事务控制。声明式事务管理:基于SpringAOP实现。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务管理没有入侵代码,通过**@Transactional**就可以进行事务操作...

引言很多coder在不理解事务的原理甚至连基本概念都不清楚的情况下,就去使用数据库事务,是极容易出错,写出一些自己不能掌控的代码。网上很多文章要不就是概念,或者一点源码,或者一点测试验证,都不足以全面了解事务,所以本文出现了,本系列Spring事务详解包含四部分:第一章讲概念,对事务的整体有一个了解。第二章从源码来看底层实现机制。第三章实例测试验证。第四章总结提高。一、背景1.1拜神Spri...

1.Lambda表达式介绍Lambda表达式本质是一种匿名函数,简单地说,它是没有声明的方法,也没有访问修饰符、返回值声明和名字。你可以将其想做一种速记,在你需要使用某个方法的地方写上它。当某个方法只使用一次,而且定义很简短,使用这种速记替代之尤其有效,这样,你就不必在类中费力写声明与方法了。Lambda表达式是Java8提供的一个新的特性,它支持Java也能进行简单的“函数式编程”。它是一...

1.什么是流式编程对于java来说,我们最常用的面向对象编程属于命令式编程(ImperativeProgramming)这种编程范式。常见的编程范式还有逻辑式编程(LogicProgramming),函数式编程(FunctionalProgramming)。java8也引入了函数式编程,结合Lambda表达式,对于函数式接口的实现和使用变得灵活和简洁了。关于函数式接口以及Lambda表达式,...

1、切换远程仓库地址方式一:修改远程仓库地址【gitremoteset-urloriginURL】更换远程仓库地址,URL为新地址。方式二:先删除远程仓库地址,然后再添加【gitremotermorigin】删除现有远程仓库【gitremoteaddoriginurl】添加新远程仓库2、【gitremote-v】查看远程仓库的地址参考【1】涵一.git切换远程仓库地址.CSDN

现在越来越多的项目就算是一个管理后端也偏向于使用前后端分离的部署方式去做,为了顺应时代的潮流,前后端分离就产生了跨域问题,所以许多同学把跨域和前后端分离项目联系在了一起,其实跨域产生的原因并不是前后端分离导致的,那我们一起来看一下,希望可以靠这一篇文章解答大家所有的跨域问题。跨域产生的条件使用xmlHttpRequest,即我们通常说的ajax请求浏览器做了这个事访问的域名不同,即访问的ht...

今天在centOS7下更改完静态ip后发现network服务重启不了,翻遍了网络,尝试了各种方法,终于解决了。现把各种解决方法归纳整理,希望能让后面的同学少走点歪路。。。首先看问题:执行servicenetworkrestart命令后出现下面的错误:根据提示输入systemctlstatusnetwork.service命令后出现如下错误信息:network服务启动不了首先保证/etc/sy...

三步走:导包-->写配置-->编码及测试1、引入依赖在SpringBoot工程中直接引入对应的starter就好了rocketmq-spring-boot-starter用法简介当开发中需要快速集成RocketMQ时可以考虑使用rocketmq-spring-boot-starter搭建RocketMQ的集成环境,但该框架并不完全具备RocketMQ所有的配置简化,如需批量消费消...