SpringBoot中异步注解@Async的使用以及注意事项 第一步开启异步:@Configuration@EnableAsyncpublic class SpringAsyncConfig { ... }默认情况下,@EnableAsync检测Spring的@Async注释和EJB 3.1 javax. EJB .异步;此选项还可用于检测其他用户定义的注释类型。(也可以在SpringBoot的启动类上直接加@EnableAsync注解)在...
Spring Boot 集成Seata(fescar)实现分布式事务处理以及实现机制 1.介绍2019 年 1 月,阿里巴巴中间件团队发起了开源项目Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。Fescar 开源后,蚂蚁金服加入 Fescar 社区参与共建,并在 Fesc...
Java中List,String,String[]之间进行转换 String转换Listpackage string;import com.google.common.base.Splitter;import com.google.common.collect.Lists;import org.apache.commons.lang3.StringUtils;import java.util.ArrayList;import java.ut...
Java8语法中获取程序耗时以及Period,Duration,ChronoUnit类的使用 package java8.Time;import java.time.*;import java.time.temporal.ChronoUnit;/** * @author 633805 LYH * @version V1.0 * @description 在Java8中,我们可以使用以下类来计算日期时间差异: * @create 2019-07-09 8:56 * @s...
Idea中SpringBoot+DevTools+LiveReload实现服务器和浏览器的热部署 项目目录结构第一步:项目中引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional&...
ConcurrentModificationException 异常 (fail-fast) 什么是fail-fast在系统设计中,快速失效系统一种可以立即报告任何可能表明故障的情况的系统。快速失效系统通常设计用于停止正常操作,而不是试图继续可能存在缺陷的过程。这种设计通常会在操作中的多个点检查系统的状态,因此可以及早检测到任何故障。快速失败模块的职责是检测错误,然后让系统的下一个最高级别处理错误。其实,这是一种理念,fail-fast就是在做系统设计的时候先考虑异常情况,一旦发生...
两层For循环的一些性能优化 import JavaBase.User;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.function.Function;import java.util.stream.Collectors;/** * @author 633805 LYH * @...
Mysql8解压版服务安装 解压文件配置系统环境变量(网上参考)配置初始化的my.ini文件的文件[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=C:\Program Files\MySQL# 设置mysql数据库的数据的存放目录datadir=C:\Program Files\MySQL\Data# 允许最大连接数max_con...
简单内存缓存工具类HashMap和Guava Cache 我们一般使用缓存都是利用第三方,例如redis ,MemCache 等,这些都是要在项目中引入其它的东西框架的,有时候其实我们可以使用一个本地缓存来解决我们的需求,下面就是我借鉴高人实现的方案。HashMap的实现工具类主要采用HashMap+定时器线程池实现,map用于存储键值对数据,map的value是Cache的内部类对象 Entity,Entity 包含 value 和该...
单例对象创建的几种方式及单例的破坏 什么是单例单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。我们知道,在面向对象的思想中,通过类的构造函数可以创建对象,只要内存足够,可以创建任意个对象。所以,要想限制某一个类只有一个单例对象,就需要在他的构造函数上下功夫。实现对象单例模式的思路是:1、一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态...
Java8中的LocalDateTime和Date一些时间操作 先记录下jdk8之前的一些帮助方法判断time是否在now的n天之内/** * 判断time是否在now的n天之内 * @param time * @param now * @param n 正数表示在条件时间n天之后,负数表示在条件时间n天之前 * @return */ public static boolean...
使用Dubbo捕获不到自定义异常的问题 Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和Spring框架无缝集成,现在在很多Rpc项目中作为同步请求用到,现在当当网维护出Dubbox添加了一些新技能,大家可以了解一波。Dubbo提供的注册中心有如下几种类型可供选择:Multicast注册中心 Zookeeper注册中心(常用) Redis注册中心...
Mysql由于binlog日志格式问题出现主从复制数据不一致(5.0版本之前) 首先我们来熟悉下MySQL中的关键三种日志 重做日志(redo log) 回滚日志(undo log) 二进制日志(binlog)重做日志:确保事务的持久性。redo日志记录事务执行后的状态,用来恢复未写入data file的已成功事务更新的数据。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启MySQL服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。回滚日志:...
Spring和SpringBoot中开启事务的方式 Spring:1.声明式事务----xml格式的1.<!-- 启用Aspect --> <aop:aspectj-autoproxy />2. <!-- 使用dbcp配置 数据库链接池 --> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" ...
SpringBoot中使用logback配置异步日志实现每个控制层类一个日志文件 首先说明在springBoot高版本中(1.5之后)不在使用log4j作为日志输出,而是使用的log4j2,本文章采用logback实现异步日志。异步日志的好处:在高并发高流量响应延迟要求比较小的系统中同步打日志已经满足不了需求了,同步打日志会阻塞调用打日志的线程,而打日志本身是需要写磁盘的,所以会造成rt增加。异步日志就是为了解决这个问题。下面借用别人的两张图:如上图,多个业务线程打...
foreach 循环里进行元素的 remove/add 操作注意点 1.forEach循环foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。Java语言从JDK 1.5.0开始引入foreach循环。在遍历数组、集合方面,foreach为开发人员提供了极大的方便。通常也被称之为增强for循环。foreach 语法格式如下:for(元素类型t 元素变量x : 遍历对象obj){...
List数组中删除指定元素 import java.util.ArrayList;import java.util.List;/** * @author 633805 LYH * @version V1.0 * @description 对类的描述 * @create 2019-03-12 8:55 * @since 1.8 */public class H { public static vo...
List的初始化和赋值操作 //初始化//1.构造 List 后使用 List.add 初始化List<String> stringList = new LinkedList<>();stringList.add("a");stringList.add("b");stringList.add("c");//2.使用 {{}} 双括号语法List<String> strin...
Base64的编码原理 这里可能需要借助一些在线工具,例如系统编码的AsciI码对照表,例如我的就是gb2312的,具体查看自己系统编码可以cmd下输入chcp得到一组数字后去编码对照表查找,还有就是各种进制转换(当然也可以进行手算),最后就还有Base64编码对照表直接上代码import cn.hutool.core.codec.Base64Decoder;import cn.hutool.core.cod...