Java
文章平均质量分 72
我是刘奇奇
这个作者很懒,什么都没留下…
展开
-
吐血记录生产环境账户脏读问题以及解决方案,超详细
最近在线上遇到账户脏读被覆盖的情况,账户使用的是redission进行加锁,在加锁之后读取账户金额,对账户金额进行加或者减的计算,然后把计算金额保存到数据库。1、大致代码@Override public HandleBalanceResult handleBalanceAndGiven(long accountId, BigDecimal handleBalance, BigInteger handleGiven){ try { RLock lock = redissonC.原创 2021-09-01 11:47:51 · 260 阅读 · 0 评论 -
IDEA默认JDK版本号变成11了
IDEA默认JDK版本号变成11了最近使用IDEA创建项目时发现IDEA的默认JDK版本号变为11了,本着不能屈居人后的精神,立马下载了JDK11,体验了一下。这里整理了一些JDK11的一些新特性,在升级后就赶快用上吧1、局部变量使用var注意var在声明初始化时已经确定了变量的类型 @Test public void test1(){ var name = "张三"; var name2 = "lisi"; var score =原创 2021-06-17 11:59:07 · 3629 阅读 · 2 评论 -
SpringBoot·不重启服务修改配置自动生效-nacos实践
nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,这次来体验一下nacos和SpringBoot集成使用。1、安装前提:安装好Docker、Docker-compose、Git,如果不会安装请查看 CoderQi公众号的文章Clone项目git clone https://github.com/nacos-group/nacos-docker.git//如果上面地址慢,请用下面的地址git clone https://gitee.com/amoqi/nacos-原创 2021-06-16 16:01:48 · 9820 阅读 · 1 评论 -
RocketMq简单使用
搭建好RocketMQ,使用SpringBoot项目引入依赖 <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.4</version> .原创 2021-04-28 14:43:55 · 345 阅读 · 1 评论 -
Mybatis Plus 10分钟上手
mybatis plus 是一款mybatis增强插件,可以在mybatis基础上来进行灵活的单表操作,不用再写SQL语句(仅限于单表),是一款简单易用的工具,本文结合SpringBoot来对Mybatis plus进行一个详细的讲解。1、初始化1.1 选择一个数据库,然后创建表CREATE TABLE `student` ( `id` bigint(20) NOT NULL, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4原创 2020-07-30 23:00:51 · 378 阅读 · 0 评论 -
SpringBoot 开机初始化
在开发过程中可能有这样的场景,需要容器启动后加载一些内容。如读取配置文件,可以进行初始化相关配置或者打印日志等。SpringBoot提供了两个接口来帮助实现这种需求,分别是 ApplicationRunner和 CommandLineRunner 它是在Bean初始化之后完成的,所以可以用@Autowire来进行注入Bean,也可以使用@Value来注入配置。@Component@Slf4j@Order(1)public class AfterStartRun implements Applicat原创 2020-07-29 14:28:08 · 216 阅读 · 0 评论 -
SpringBoot 多线程之抢红包实践
1、搭建项目使用springboot 2.3.0.RELEASE、mysql 5.7.27 进行构建,压测工具使用的是JMeter,后续会用到redis,开发工具为IDEA1.1 数据库在mysql中建立一个red_packet的数据库,有两个表,分别如下。CREATE TABLE `t_red_packet` ( `id` int(12) NOT NULL AUTO_INCREMENT, `user_id` int(12) DEFAULT NULL, `amount` decima原创 2020-07-14 08:52:00 · 926 阅读 · 0 评论 -
java工具包里的工具你了解吗
帮助及说明安装好java并配置好环境变量后,在命令栏里直接敲击下面介绍的命令即可使用工具查看帮助工具名 -helpjps-进程状况jps(JVM Process Status Tool),虚拟机进程状况工具,列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一的ID(LVMID,Local Virtual Machine Identifier)jps命令格式,hostid为主机标识jps [-q] [-mlvV] [原创 2020-07-14 08:45:07 · 428 阅读 · 0 评论 -
Thymeleaf常用操作
1、取值<a th:text="${hello}"></a>2、循环<p th:each="str:${list}" th:text="${str}"></p>3、是否显示<p th:if="1==1">我是存在的</p>4、选择<input type="checkbox" th:checked="1==1">选择5、传值<a th:href="'javascript:a(\''+${hell原创 2020-07-13 16:35:51 · 197 阅读 · 0 评论 -
eureka相互注册问题,注册不上问题
两个Eurake相互注册的时候,发现注册不上,服务都指向了一个节点。查询资料发现当两个机器的 eureka.instance.hostname相同且eureka.client.serviceUrl.defaultZone的域名相同会导致此问题,在同一机器上开启两个host的时候可以配置一下host127.0.0.1 replica1127.0.0.1 replica2用host后面配置的replica1、replica2代替程序中的上面两个参数的值即可...原创 2020-06-19 16:32:01 · 2191 阅读 · 0 评论 -
JAVA基本故障处理工具(一)
JAVA基本故障处理工具工具查看帮助工具名 -helpjps-进程状况jps(JVM Process Status Tool),虚拟机进程状况工具,列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一的ID(LVMID,Local Virtual Machine Identifier)jps命令格式,hosti...原创 2020-05-06 13:03:52 · 259 阅读 · 0 评论 -
最通俗易懂的 Java 8 新特性讲解
Java8新特性1. 基础语法Java8中引用一个新的操作符 “->”,该操作符成为箭头操作符或者lambda操作符,箭头操作符将Lambda拆分成两个部分左侧:Lambda 表达式的参数列表右侧:Lambda 表达式中所需要的执行的功能,即 Lambda 体语法格式:无参,无返回值需要实现接口的抽象方法。无参,无返回值。()->System.out.pri...原创 2020-04-08 13:56:29 · 683 阅读 · 0 评论