支付模块
实际开发工作中经常会遇见如下场景,一个支付模块,一个订单模块,有一定依赖,一个同事负责支付模块,另一个同事负责订单模块,但是开发支付模块的时候要依赖订单模块的相关类 ,方法,或者工具类,这些还没开发出来,看不到一个完整的订单业务逻辑,可能只拿到了订单的Order类,但是呢不能影响
阿里云服务
购买
连接
购买域名
域名备案
域名解析
源配置步骤
资源地址
http://learning.happymmall.com/
配置阿里云的yum源
1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.rep
锁消除和锁粗化案例分析
锁消除
直接上代码
/**
* 描述: 锁粒度演示
* @author karl
* @create 2020-02-11 14:38
*/
public class MySynchronizedTest07 {
private Object ob
Redis分布式锁
Redis分布式锁命令
setnx当且仅当 key 不存在。若给定的 key 已经存在,则 setnx不做任何动作。setnx 是『set if not exists』(如果不存在,则 set)的简写,setnx 具有原子性。
getset先 get 旧值,后set
开发环境: Windows操作系统开发工具:Eclipse+Jdk+Tomcat+mysql数据库
运行效果图
源码及原文链接:http://javadao.xyz/forum.php?mod=viewthread&a
How to Implement Hypothesis-Driven Development
原文:https://www.thoughtworks.com/insights/articles/how-implement-hypothesis-driven-development
本文源码:GitHub·点这里 || GitEE·点这里
一、文档类型简介
1、XML文档
XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如数据结构,格式等。它可以用来标记数据、定义数
一 SpringBoot介绍
1.1 先从Spring谈起
我们知道Spring是重量级企业开发框架 Enterprise JavaBean(EJB) 的替代品,Spring为企业级Java开发提供了一种相对简单的方法,通过 依赖注入 和 面向切面编程 ,用简单的 Java对象(Plain
@RestController 将返回的对象数据直接以 JSON 或 XML 形式写入 HTTP 响应(Response)中。绝大部分情况下都是直接以 JSON 形式返回给客户端,很少的情况下才会以 XML 形式返回。转换成 XML 形式还需要额为的工作,上面代码中演示的直接就是将对象数据
一、Git提交指令
git init
git第一次使用在当前文件夹初始化一个git仓库,第二次不需要
git add .
把当前文件夹所有文件添加到缓存区中。
可以选特定的文件夹或文件。将后面的.改变即可
git commit -m ""
把缓存区中的文件,打上对应信息,提交到本
并发编程之第三篇(synchronized)
3. 自旋优化
4. 偏向锁
撤销-其它线程使用对象
撤销-调用wait/notify
批量重偏向
批量撤销
5. 锁消除
4.7 wait/notify
API介绍
4.8 wait notify的正确姿势
同步模式之保护性暂停
异步模式
配置了tomcat-users.xml之后,重启tomcat服务,仍然访问拒绝。
原因:tomcat8.5 更改之后,仍然访问拒绝。
还需步骤如下: vi /usr/local/tomcat/apache-tomcat-8.5.9/webapps/manager/META-INF
个人博客地址 studyidea.cn,点击查看更多原创文章
0x00. 翻车现场
那是个月黑风高的夜晚,小黑哥成功将新版本发布到了生产,小心翼翼检查了应用日志,后续测试小姐姐验收成功。
恩,小黑哥我还是一如既往的稳~
接着小黑哥就跑到楼下食堂吃个夜宵,谁知正吃到一半,线上运维同学发
背景
随着互联网的不断发展和软件架构的不断复杂化,同时随着网站访问量的日渐上升,导致传统单机关系型数据库应用已经无法满足人们的需求,在高并发的场景下,频繁的数据库存取操作使得服务器压力剧增,甚至导致服务器宕机,为了缓解服务器压力,由此NoSQL技术应运而生。
什么是NoSQL
NoSQL
这一篇说一下PriorityBlockingQueue,引用书中的一句话:这就是带优先级的无界阻塞队列,每次出队都返回优先级最高或者最低的元素(这里规则可以自己制定),内部是使用平衡二叉树实现的,遍历不保证有序;
其实也比较容易,就是基于数组实现的一个平衡二叉树,不了解平衡二叉树的
前言
死锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有一次发生了错误,就可能导致程序中发生死锁,并且即使通过
有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示:
用eclipse或用ant则没有问题。
其实原因很简单,我们忽略了2个细节。
1.java指令默认在寻找class文件的地址是
查询缓存
一级缓存:同一个sqlSession对象
MyBatis默认开启一级缓存,如果用同样的sqlSession对象查询相同的数据,则会在第一次查询时向数据库发送SQL语句,并将查询的结果放入到SQLSESSION中,后续再次查询该同样的对象时,则直接从缓存中查询该对象即可(即忽略了数
集成MyBatis
(1)在pom.xml中添加依赖
<!-- mybatis的起步依赖。包含了mybatis、mybatis-spring、spring-jdbc(事务要用到)的坐标 -->
<dependency>
如果我们像给任务配置监听,按照常规的做法是这样的
一个个配置,比较麻烦。
现在利用ActivitiEventListener,监听全局事件,并且可以判断不同的事件类型,进而执行不同的业务逻辑。
1.定义事件处理handler接口
用接口来定义统一约定
public interface Ev