- 博客(102)
- 资源 (36)
- 收藏
- 关注
原创 SpringBoot中异步注解@Async的使用以及注意事项
第一步开启异步:@Configuration@EnableAsyncpublic class SpringAsyncConfig { ... }默认情况下,@EnableAsync检测Spring的@Async注释和EJB 3.1 javax. EJB .异步;此选项还可用于检测其他用户定义的注释类型。(也可以在SpringBoot的启动类上直接加@EnableAsync注解)在...
2020-03-25 10:37:37
3941
转载 Spring Boot 集成Seata(fescar)实现分布式事务处理以及实现机制
1.介绍2019 年 1 月,阿里巴巴中间件团队发起了开源项目Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。Fescar 开源后,蚂蚁金服加入 Fescar 社区参与共建,并在 Fesc...
2019-08-07 10:06:05
1696
1
原创 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...
2019-08-03 10:08:45
7975
原创 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...
2019-08-02 08:55:21
5378
转载 ConcurrentModificationException 异常 (fail-fast)
什么是fail-fast在系统设计中,快速失效系统一种可以立即报告任何可能表明故障的情况的系统。快速失效系统通常设计用于停止正常操作,而不是试图继续可能存在缺陷的过程。这种设计通常会在操作中的多个点检查系统的状态,因此可以及早检测到任何故障。快速失败模块的职责是检测错误,然后让系统的下一个最高级别处理错误。其实,这是一种理念,fail-fast就是在做系统设计的时候先考虑异常情况,一旦发生...
2019-07-05 10:22:43
673
原创 两层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 * @...
2019-07-03 15:08:51
4388
原创 Mysql8解压版服务安装
解压文件配置系统环境变量(网上参考)配置初始化的my.ini文件的文件[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=C:\Program Files\MySQL# 设置mysql数据库的数据的存放目录datadir=C:\Program Files\MySQL\Data# 允许最大连接数max_con...
2019-06-25 08:59:38
820
1
原创 简单内存缓存工具类HashMap和Guava Cache
我们一般使用缓存都是利用第三方,例如redis ,MemCache 等,这些都是要在项目中引入其它的东西框架的,有时候其实我们可以使用一个本地缓存来解决我们的需求,下面就是我借鉴高人实现的方案。HashMap的实现工具类主要采用HashMap+定时器线程池实现,map用于存储键值对数据,map的value是Cache的内部类对象 Entity,Entity 包含 value 和该...
2019-06-18 15:01:04
3730
转载 单例对象创建的几种方式及单例的破坏
什么是单例单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。我们知道,在面向对象的思想中,通过类的构造函数可以创建对象,只要内存足够,可以创建任意个对象。所以,要想限制某一个类只有一个单例对象,就需要在他的构造函数上下功夫。实现对象单例模式的思路是:1、一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态...
2019-05-24 17:07:12
1557
1
原创 Java8中的LocalDateTime和Date一些时间操作
先记录下jdk8之前的一些帮助方法判断time是否在now的n天之内/** * 判断time是否在now的n天之内 * @param time * @param now * @param n 正数表示在条件时间n天之后,负数表示在条件时间n天之前 * @return */ public static boolean...
2019-05-17 08:57:19
5408
1
原创 使用Dubbo捕获不到自定义异常的问题
Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和Spring框架无缝集成,现在在很多Rpc项目中作为同步请求用到,现在当当网维护出Dubbox添加了一些新技能,大家可以了解一波。Dubbo提供的注册中心有如下几种类型可供选择:Multicast注册中心 Zookeeper注册中心(常用) Redis注册中心...
2019-04-25 10:20:03
2789
2
原创 Mysql由于binlog日志格式问题出现主从复制数据不一致(5.0版本之前)
首先我们来熟悉下MySQL中的关键三种日志 重做日志(redo log) 回滚日志(undo log) 二进制日志(binlog)重做日志:确保事务的持久性。redo日志记录事务执行后的状态,用来恢复未写入data file的已成功事务更新的数据。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启MySQL服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。回滚日志:...
2019-04-09 14:44:25
4444
1
原创 Spring和SpringBoot中开启事务的方式
Spring:1.声明式事务----xml格式的1.<!-- 启用Aspect --> <aop:aspectj-autoproxy />2. <!-- 使用dbcp配置 数据库链接池 --> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" ...
2019-03-28 16:21:36
12748
3
原创 SpringBoot中使用logback配置异步日志实现每个控制层类一个日志文件
首先说明在springBoot高版本中(1.5之后)不在使用log4j作为日志输出,而是使用的log4j2,本文章采用logback实现异步日志。异步日志的好处:在高并发高流量响应延迟要求比较小的系统中同步打日志已经满足不了需求了,同步打日志会阻塞调用打日志的线程,而打日志本身是需要写磁盘的,所以会造成rt增加。异步日志就是为了解决这个问题。下面借用别人的两张图:如上图,多个业务线程打...
2019-03-22 08:49:40
3776
转载 foreach 循环里进行元素的 remove/add 操作注意点
1.forEach循环foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。Java语言从JDK 1.5.0开始引入foreach循环。在遍历数组、集合方面,foreach为开发人员提供了极大的方便。通常也被称之为增强for循环。foreach 语法格式如下:for(元素类型t 元素变量x : 遍历对象obj){...
2019-03-12 10:21:46
6019
3
原创 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...
2019-03-12 09:57:59
12787
1
原创 List的初始化和赋值操作
//初始化//1.构造 List 后使用 List.add 初始化List<String> stringList = new LinkedList<>();stringList.add("a");stringList.add("b");stringList.add("c");//2.使用 {{}} 双括号语法List<String> strin...
2019-03-12 09:52:40
19674
原创 Base64的编码原理
这里可能需要借助一些在线工具,例如系统编码的AsciI码对照表,例如我的就是gb2312的,具体查看自己系统编码可以cmd下输入chcp得到一组数字后去编码对照表查找,还有就是各种进制转换(当然也可以进行手算),最后就还有Base64编码对照表直接上代码import cn.hutool.core.codec.Base64Decoder;import cn.hutool.core.cod...
2019-03-08 08:59:13
1394
3
原创 jdk8新特性
在学习JDK8新特性Optional类的时候,提到对于Optional的两个操作映射和过滤设计到JDK提供的流式出来。这篇文章便详细的介绍流式处理:一. 流式处理简介流式处理给开发者的第一感觉就是让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对一个包含整数的集合中筛选出所有的偶数,并将其封装成为一个新的List返回,那么在java...
2019-02-27 08:38:18
955
原创 List对象数组排序(根据指定的属性)
话不多说直接上代码/** * @author 633805 LYH * @version V1.0 * @description 对类的描述 * @create 2019-02-26 14:23 * @since 1.7 */public class User { private Long uid; private String name; pri...
2019-02-26 14:46:03
1499
原创 Spring Boot与swagger集成构建API管理及测试
首先明白swagger是什么 https://swagger.io/根据官网的介绍: Swagger Inspector:测试API和生成OpenAPI的开发工具。Swagger Inspector的建立是为了解决开发者的三个主要目标。执行简单的API测试生成OpenAPI文档探索新的API功能我的理解Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTfu...
2019-02-22 11:36:01
616
原创 list对象数组根据对象某个属性去重或者排序
/** * 按照List中的某个String类型的属性进行排序 * * @param list */ Collections.sort(classList, new Comparator() { @Override public int compare(Object o1, Object o2) { ExamineeClass e1 = (Ex...
2018-12-26 11:23:34
5687
原创 Restful和CXF结合简单案例
一个适用于简单操作的接口规范而已,无规矩不成方圆,复杂操作并不适用,还是看业务发展需求的它适合CRUD并且只适合CRUD,有的浏览器可能不支持POST、GET之外的提交方式,要特殊处理,API容易给让误解中能进行增、删、查、改等操作。RESTful风格只是一种架构风格,一种思想,我们不能一概的说它的好或不好。存在即合理,在软件开发过程中,无论是采用RPC风格还是RESTful,只要是适合自...
2018-11-15 14:37:59
1792
原创 Mybatis的简单模仿实现
通过网上的各种资源,结合自身,模仿出Mybatis的简单实现,下面是主要代码:项目是一个普通Java项目,只要导入数据库的Jar包就行(我使用的是Mysql) 其实也就是底层jdbc的实现,底层查询数据库基本就是通过给一个查询语句,使用原生的jdbc实现来查询出结果,其中主要的五个步骤是:不多说,直接上代码:项目结构:package com.lyh;import java...
2018-11-02 16:19:07
1024
原创 自定义的springMvc框架简单实现
最近通过学习前辈们的自定义的mini版springMvc框架实现案例,自己也模仿着学习了一遍,以此记录下来:SpringMVC运行流程 执行过程如图所示: ⑴用户发送请求至前端控制器DispatcherServlet。 ⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。 ⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理...
2018-11-01 16:25:24
1864
原创 MySQL开启慢查询日志输出(win系统)
找到mysql的安装目录,找到my.ini文件夹在[mysqld]处加入以下代码开启慢查询#开启慢查询slow_query_log = ON#log-slow-queries:代表MYSQL慢查询的日志存储目录,此目录文件一定要有写权限;# mysql5.6版本以上,取消了参数log-slow-queries,更改为slow-query-log-file,切记!!# 还需要加上 s...
2018-10-13 14:55:12
2084
2
转载 MySQL表的设计一些基本规则
1.主键主键可以使用bigint(20) unsigned也可以使用varchar,使用bigint,可以设置为自增主键auto_increment。使用varchar,要生成主键。2.gmt_create、gmt_modified在TB所有表中都添加gmt_create、gmt_modified字段,都是datetime类型。gmt_create表示记录创建时间,gmt_modifi...
2018-10-08 19:32:43
835
原创 SpringMVC中的九大组件的理解和源码
SpringMVC中的Servlet一共有三个层次,分别是HttpServletBean、FrameworkServlet和 DispatcherServlet。 HttpServletBean直接继承自java的HttpServlet,其作用是将Servlet中配置的参数设置到相应的属性; FrameworkServlet初始化了WebApplicationCo...
2018-10-08 10:44:43
4000
转载 Spring 中@Transactional注解参数详解
事物注解方式: @Transactional当标于类前时, 标示类中所有方法都进行事物处理,例子:1 @Transactional public class TestServiceBean implements TestService {}当类中某些方法不需要事物时: @Transactional public class TestServiceB...
2018-09-28 17:10:40
285
转载 MySQL 建表时的四种key
mysql的key和index多少有点令人迷惑,这实际上考察对数据库体系结构的了解的。1 key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, foreign key 等。 primary key 有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性...
2018-09-28 10:29:54
21426
原创 MySQL数据备份(全库)
1.1、 mysqldump命令备份数据在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:#MySQLdump常用mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql1.2、 mysqldum...
2018-09-27 10:53:20
2769
原创 Ubuntu16.04amd64安装docker服务
首先检查虚拟机环境是否支持,本安装步骤是在ubuntu16.04 64位操作系统上的,目前docker 不支持32位linux 查看linux版本 lyh@ubuntu:~$ uname -a 如果是64位的机子将会有64的标志。下面开始安装(基于root环境)法一:在线安装 第一步:升级包管理器---------apt-get update 第二步:sudo apt-g...
2018-09-25 10:19:03
1198
原创 springBoot项目打包war包部署到tomcat
第一步:修改pom.xml变成war包 <groupId>com.example</groupId> <artifactId>springdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war&am
2018-09-15 14:19:07
7185
原创 springBoot配置多数据源时报错 jdbcUrl is required with driverClassName.
这是由于springBoot1和2的写法区别升级到springBoot2之后地址和驱动需要按照下面格式编写spring.datasource.hikari.test1.driver-class-name = com.mysql.jdbc.Driverspring.datasource.hikari.test1.jdbc-url = spring.datasource.hikar...
2018-09-12 17:39:56
5889
转载 存储引擎MyISAM 和 InnoDB
MyISAM 和 InnoDB 的基本区别1.InnoDB不支持FULLTEXT类型的索引。2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。3.对于AUTO...
2018-09-11 09:16:47
189
原创 Spring Boot给application.yml里面的数据库基础信息进行简单密文处理
采用的应该是基于MD5的对称加密,通过密钥得到密文,下面是具体步骤:第一步:首先加入相应的jar包<!-- 数据库加密 --> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-start...
2018-08-31 15:11:09
1935
3
原创 The program ‘mysql’ can be found in the following packages:
Linux系统中MySQL启动成功但是通过mysql命令无法进入客户端报错:The program ‘mysql’ can be found in the following packages:* mysql-client-core-5.7* mariadb-client-core-10.0Try: apt-get install <selected package>...
2018-08-29 12:41:09
5396
1
转载 Spring Cloud中RabbitMQ中web管理界面不是localhost无法使用guest登录
安装最新版本的rabbitmq(3.3.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败。翻看官方的release文档后,得知由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3....
2018-08-18 08:35:51
1215
1
原创 Spring Cloud中的对称加密以及JCE和CURL的安装
在Spring Cloud中实现RSA对称加密需要一些前提条件,首先要给jdk/jre配置JCE,安装JCE加密扩展 各个版本JDK的JCE下载地址 下载地址1.下载后替换本地安装的jre下的文件也就是 %JAVA_HOME%\jre\lib\security中2.替换文件local_policy.jar 和 US_export_policy.jar。 加解密的策略文件第二部分安...
2018-08-17 15:26:45
798
原创 Spring中给jdbc.properties属性文件进行密文处理
一般spring容器启动时,通过PropertyPlaceholderConfigurer类读取jdbc.properties文件里的数据库配置信息。通过这个原理,我们把加密后的数据库配置信息放到jdbc.properties文件里,然后自定义一个继承PropertyPlaceholderConfigurer的类,实现解密,把解密后的信息又放回去。最后在配置DataSource时,还是用占位符...
2018-08-14 11:18:29
1687
1
Spring中jdbc.properties属性文件进行密文处理
2018-08-14
Selenium模拟浏览器
2018-06-22
springboot-dubbo-zookeeper-seata-master.zip
2019-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人