摘要:
本文以转账操作为例,实现并测试乐观锁和悲观锁。
全部代码:https://github.com/imcloudfloating/Lock_Demo
死锁问题
当 A, B 两个账户同时向对方转账时,会出现如下情况:
时刻
事务 1 (A 向 B 转账)
事务 2 (B 向 A 转账)
T1
Lock... 阅读原文
2019-09-05 13:58:02 阅读(2356) 评论(0)
摘要:
思路:
动态路由实现:在导航守卫中判断用户是否有用户信息,通过调用接口,拿到后台根据用户角色生成的菜单树,格式化菜单树结构信息并递归生成层级路由表并使用Vuex保存,通过 router.addRoutes 动态挂载到 router 上,按钮级别的权限控制,则需使用自定义指令去实现。
实现:
导航守卫代... 阅读原文
2019-09-05 13:24:01 阅读(2381) 评论(0)
摘要:
前言
众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。
然而不论是哪个国家,什么背景的 Java 开发者,都对自己写的并发程序相当自信,但也会在出问题时表现得很诧异甚至一筹莫展。
可见,Java 并发编程显然不是一件能速... 阅读原文
2019-09-05 11:34:02 阅读(2381) 评论(0)
摘要:
关系数据库使得海量信息的管理成为现实,但各家数据库提供的编程接口不尽相同,就连SQL语法也有所差异,像Oracle、MySQL、SQL Server都拥有自己的开发规则,倘若Java针对每个数据库单独做一套方法,这些数据库操作方法将变得又庞大又冗余。为了解决不同数据库各自为政的问题,Java设计了统一的JDB... 阅读原文
2019-09-05 11:23:04 阅读(2378) 评论(0)
摘要:
首先本文是学习过程中的一个小demo,不涉及实际的发送短信、邮件的发送逻辑,同时,在文中 RabbitMQ 是基于发布订阅模式。所以如下会使用邮件、短信发送的例子,生产者对外发布发送消息的接口,根据调用的参数发送到相应的队列中。其实这里面还会存在一些问题,比如事务问题、重复签收问题等等,由于是练手De... 阅读原文
2019-09-05 11:10:03 阅读(2415) 评论(0)
摘要:
概述
SpringBoot 中没有 web.xml, 我们无法按照原来的方式在 web.xml 中配置 Filter 。但是我们可以通过 JavaConfig(@Configuration +@Bean)方式进行配置。通过FilterRegistrationBean 将自定义 Filter 添加到 Sprin... 阅读原文
2019-09-05 11:08:06 阅读(2406) 评论(0)
摘要:
统一异常处理相关注解介绍
@ControllerAdvice
声明在类上用于指定该类为控制增强器类,如果想声明返回的结果为 RESTFull 风格的数据,需要在声明 @ExceptionHandler 注解的方法上同时加 上 @ResponseBody
@RestControllerAdvice
声明在类上用... 阅读原文
2019-09-05 08:33:05 阅读(2547) 评论(0)
摘要:
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.Buffered... 阅读原文
2019-09-05 07:05:04 阅读(3510) 评论(0)
摘要:
提到Netty首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到NioEventLoopGroup这个线程池,接下来进入正题。
线程模型
首先来看一段Netty的使用示例
package com.wrh.server;
import io.netty.bootstrap... 阅读原文
2019-09-05 06:00:19 阅读(2369) 评论(0)
摘要:
上一篇文章提到我们最近开了个新项目,目的是将新的业务放到新项目中,老项目单独维护,再逐步迁移老项目到新项目里。但就在前端时间生产环境发生了一个事故,事故开始的异常是我们的业务发现前端h5页面办理很慢,这台服务器跑了三个省的办理业务,同事在寻找问题的时候一口老血差点吐出来,所有的项目日志打在一个文件里,里面... 阅读原文
2019-09-05 00:18:40 阅读(2317) 评论(0)