自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 关于Hikari连接池的源码理解与配置使用

关于Hikari连接池的源码理解与配置使用1. 连接池初始化1.1 初始化连接池对于应用者来说,我们构造一个线程池就是构造一个HikariDataSource。重点看一下获取连接以及相关连接管理的流程。public Connection getConnection() throws SQLException { if (this.isClosed()) { throw new SQLException("HikariDataSource " + this

2021-07-15 18:03:45 1836

原创 redis分布式锁的实现

https://zhuanlan.zhihu.com/p/102392886 --java为我们已经提供了各种锁,为什么还需要分布式锁?https://blog.csdn.net/qq_33363618/article/details/88783766--分布式锁-Redission推荐上面的文章,内容都是上面两篇文章的,主要参考并做个自己的记录分布式锁的使用场景当存在共享数据时,多线程并发访问,会存在数据安全问题。单服务架构下,可以使用本地锁如synchronized,loc...

2021-04-19 15:25:52 215

原创 Java基础知识

1.对java平台的理解Java是一种面向对象的语言,显著的特性有两个方面:一是“write once, run anywhere", java的跨平台特性使得java源代码不需要针对不同的平台进行修改,如c语言需要根据平台的不同进行修改。二是垃圾收集(GC),Java通过垃圾收集器回收内存。java是解释机制还是编译机制?定义:编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。 如c,编译一次后就是可运行的机器码。解释型语言:把做好的源程序翻译.

2021-01-29 13:45:52 358 2

原创 @Async实现原理与使用

Spring容器启动初始化bean时,判断类中是否使用了@Async注解,创建切入点和切入点处理器,根据切入点创建代理,在调用@Async注解标注的方法时,会调用代理,执行切入点处理器invoke方法,将方法的执行提交给线程池,实现异步执行。所以,需要注意的一个错误用法是,如果A类的a方法(没有标注@Async)调用它自己的b方法(标注@Async)是不会异步执行的,因为从a方法进入调用的都是它本身,不会进入代理。...

2021-01-28 14:42:12 854 1

原创 gitlab的安装使用

1.gitlab下载安装安装前环境sudo yum install -y curl policycoreutils-python openssh-server postfixsudo systemctl enable sshdsudo systemctl start sshdsudo systemctl enable postfixsudo systemctl start postfixsudo firewall-cmd --add-service=ssh --permanentsudo f

2021-01-28 14:21:21 167 1

转载 单例模式

https://blog.csdn.net/qq_37193705/article/details/88365816 ---深入理解单例模式的三大要素(最容易忽略的构造函数)

2021-01-13 17:03:40 85

原创 @EnableConfigurationProperties注解的使用注意点

@ConfigurationProperties这个注解直接加在类上面,这个类就可以和spring boot配置文件进行一 一映射。@EnableConfigurationProperties这个注解的作用是,让@ConfigurationProperties 修饰的类可以加载到spring ioc中让WxCpProperties类生成bean对象如果已经使用了@Configuration 或者 @Component等注解就不要用@EnableConfigura...

2021-01-08 16:46:33 556 2

原创 springcloud使用的一些记录

注册中心eureka, Zookeeper, Consul, NacosCAP理论是分布式架构中重要理论 一致性(Consistency) (所有节点在同一时间具有相同的数据) 可用性(Availability) (保证每个请求不管成功或者失败都有响应) 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作) 支持CP的注册中心:Zookeeper,ConsulApache Zookeeper 在设计时就紧遵CP..

2020-12-17 14:27:56 90

原创 oauth2.0

https://github.com/jeansfish/RFC6749.zh-cn/blob/master/SUMMARY.md --oauth授权RFC 6749规范http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html --理解oauth2.0 阮一峰https://blog.csdn.net/xyjcfucdi128/article/details/87163388 --认证授权服务实例为什么要使用授权?授予第三方请求系...

2020-12-17 14:21:03 95 1

原创 spring security oauth2记录

实例:https://blog.csdn.net/xyjcfucdi128/article/details/87163388 --转载demo是下载的, 上面是原博主的博客, 记录一下使用demo过程的一些问题依赖:由于Spring Boot中的OAuth协议是在Spring Security基础上完成的。因此首先编辑pom.xml,添加Spring Security以及OAuth依赖。认证服务器的配置有哪些?主要集中在资源的获取源配置、缓存配置oa...

2020-12-17 14:20:21 286

原创 java设计模式-工厂模式

1.什么是工厂模式?工厂模式就是一种用来实例化对象的模式,是用工厂方法代替new的一种模式.本质上就是将产品公用的部分提取出来,可变的部分留作接口, 将具体产品的创建交给工厂, 方便代码的可扩展和复用.简单工厂,工厂方法模式以及抽象工厂的区别:https://blog.csdn.net/yalishadaa/article/details/79332474https://www.cnblogs.com/laixiancai/p/4808087.html2.应用-简单工厂代码结构

2020-11-17 14:19:57 133

转载 转载mybatis-plus的使用

https://juejin.im/post/6862549035035672590

2020-10-16 10:25:36 99

原创 swagger的使用及踩坑

swagger的使用有两种方式:https://blog.csdn.net/weixin_37509652/article/details/80094370按照该博客中的第一种方式使用@EnableSwagger2Doc注解其实是直接使用的swagger默认配置,生成的页面如下,手动配置首先要去除启动类上@EnableSwagger2Doc注解,否则会报错. 配置有两种方式,1.配置类/** * Swagger2API文档的配置 */@Configuration@Enabl

2020-10-14 15:21:03 3835

原创 解决git报错Fetch failed: Authentication failed for

这个错误是由于项目的账号填写错误导致的因为idea中没有在setting中设置该项目远程仓库的账号密码,所以在fetch时由window系统弹出密码框.第一次填写错误,导致后面每次想fetch时,一直返回Fetch failed: Authentication failed for.按照网上的说法对setting中的password, invalidate Cache进行了重置,重启后依然返回该错误.原因是我填写的账号密码是交给了windows系统管理, 重置idea中的设置不起作用.

2020-07-22 09:39:47 3593 1

原创 解决jar包版本冲突

当两个jar中同时引用一个jar,有可能会因为两个引用jar的版本不同冲突,如上图解决方法1:统一版本<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version></dependency>直接在pom文件中指定该引用jar版本解决方法2: ..

2020-07-17 16:58:18 1065

原创 每日记录-day02

1.com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别?com.mysql.jdbc.Driver是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver是 mysql-connector-java 6中的JDBC连接Mysql6com.mysql.cj.jdbc.Driver, 需要指定时区serverTimezone。2.使用SpringMVC的注解定义@ControllerAdvice...

2020-07-13 20:15:13 135

原创 每日记录_day01

2020/07/101.数据库连接池设置的越大,性能越高,吞吐量越大?否, 能"同时"运行的连接与系统核心数相关, 这里有个公式能应用于大多数数据库产品,连接数 = ((核心数 * 2) + 有效磁盘数)并发增加时,连接池会不断的自动创建新的连接满足调用,直到达到连接池的最大数目;当连接池连接减少甚至没有时,连接池自动关闭一些连接,保持最小数目。使用druid等连接池时,需要配置自动检测是否有效连接,避免使用时获取到无效的连接而报错https://blog.csdn.net/w0598.

2020-07-10 10:09:30 120

原创 haproxy集群+keepalived

针对上一篇博客的karaf集群,在项目中的计划是需要部署一个对外提供http接口的插件(两台karaf中各部署一个http).那么就有一个问题,对于两台服务器上的集群,怎么通过一个地址实现对集群中接口的轮询访问? --负载均衡1.haproxy选择nginx和haproxy都可以.简介:HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会..

2020-05-29 16:02:50 767

原创 karaf-cellar集群的搭建

karaf版本: apache-karaf-4.2.8.tar.gzkaraf安装:https://mirror.bit.edu.cn/apache/karaf/documentation/4_x.html#_user_guidejdk版本:jdk-8u201-linux-x64.tar.gz两台虚拟机:192.168.147.129192.168.147.1301.karaf-cellar集群官方文档:http://karaf.apache.org/manual/c...

2020-05-27 17:45:28 727

原创 大端和小端

目录1.高字节和低字节2.高地址和低地址3.大端和小端4.网络字节序和主机字节序计算机中以字节为单位,每个地址对应一个字节,一个字节8bit。在计算机系统中,如果大于一个字节,就需要区分字节顺序。常见的字节顺序分为:大端(Big Endian)和小端(Litter Endian)。想要理解什么是大端和小端,首先需要明确下面几个概念。1.高字节和低字节什么是高字节?什么是...

2020-03-19 21:23:49 11747 2

转载 java io流

转载: https://blog.csdn.net/zhaoyanjun6/article/details/54292148/

2020-03-16 21:05:15 110

转载 Maven仓库详解

转载:https://blog.csdn.net/wangdong5678999/article/details/72835539

2020-03-10 21:55:01 121

原创 同步——锁对象和条件对象

同步在大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取。如果每一个线程都调用修改了该数据,可能会产生错误,这种情况叫做竞争条件。为了避免多线程对共享数据的讹误,就需要学习如何同步存取。锁对象有两种机制防止代码块受并发访问的干扰:1)synchronized关键字2)ReentrantLock类用ReentrantLock保护代码块的基本机构如下:...

2019-12-23 22:05:36 314

原创 实现线程的两种方式以及线程的中断、状态、属性

实现线程的两种方式: public static void main(String[] args) { try { thread01(); thread02(); } catch (Exception e) { e.printStackTrace(); } }...

2019-12-22 15:30:59 238

原创 并发中的基本概念

1.并发和并行并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线...

2019-12-16 21:29:55 375

原创 Java——内部类

public class Circle { private double radius = 0; public static int count = 1; public Circle(double radius) { this.radius = radius; } public Draw getInstance(){ r...

2019-12-12 22:03:49 126

原创 Java8新特性——Lambda表达式

关于lambda,可以看这篇文章,作者说的很详细:https://www.cnblogs.com/linlinismine/p/9283532.html涉及的概念: 数据并行,双冒号的使用下面是自己测试的代码: //lambda的使用 public static void main(String[] args) { //(s) -> System....

2019-12-11 10:06:37 136

原创 JAVA设计模式——策略模式

什么是策略模式?旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。public interface Travel { public void travelMethod();}public class TravelByCar implements Travel ...

2019-12-10 10:37:03 145

原创 JAVA多态

什么是多态?参考下面的链接https://www.jianshu.com/p/68ddb5484ca2public class Animal { public void eat(){ System.out.println("动物要吃饭"); }}public interface Zoushou { void haveLeg();}pub...

2019-12-09 21:28:31 114

原创 Java接口

什么是接口?接口技术是用来描述类具有什么功能,而并不是给出每个功能的具体实现。接口中的所有方法自动的属于public。在接口中可以定义常量(自动定义为public static final),但是没有实力域。接口的常量调用,直接接口名.常量名。Java8中接口新增了静态方法和默认方法:静态方法:Java8中,允许在接口中增加静态方法,但是这有违于将接口作为抽象规范的初...

2019-12-08 15:01:04 86

原创 Java继承中的一些关系——instanceof和equals

记录一下看过的东西:1.instanceofpublic class Foot { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; ...

2019-12-06 16:37:03 286

原创 Java中的参数传递方式

1.值传递和引用传递值传递:实参将自身的值拷贝一份传递给方法作为参数,在方法中对形参的修改不会影响到实参的数值。引用传递:方法接受的实际是实参的地址值,在方法中的操作会直接根据地址找到实参并修改实参的值。2.Java中的参数传递很多程序设计语言(C++等)使用了上面提到了两种参数的传递方式,但是在Java中,只有值传递。a) 基本类型,基本类型的包装类,String类的参数传递...

2019-12-04 13:38:16 1164

原创 final关键字

1.final变量final可以用来声明变量,一旦被final修饰,则该变量不可改变。public class TestFinal { private String name; //用大写字母定义,中间使用下划线 private final int AGE; //public static final修饰的变量只能在这里初始化 public st...

2019-12-03 21:48:44 88

原创 linux常用命令

1.查找文件find / -name filename.txt根据名称查找/目录下的filename.txt文件。find . -name “*.xml”递归查找所有的xml文件find . -name “*.xml” |xargs grep “Hello World”递归查找所有文件内容中包含hello world的xml文件ls -l | grep ‘jar’查找当前目录中的所有...

2019-12-02 14:54:06 104

原创 Navicat连接Oracle数据库失败--ORA-28547

工作需要连接其他公司的oracle数据库,这时候navicat连接失败返回ORA-28547:connection to server failed,probable Oracle Net admin error.oracle数据库连接失败首先排查原因:网络,当前使用的oracle数据库版本与navicat版本是否匹配最后排查出的原因是我的navicatPre12自带的oci.dll插件和...

2019-12-02 10:50:55 638

原创 springcloud集成分布式事务框架Fescar

目录:1.什么是fescar?2.结合官方文档的快速使用3.demo实例1.什么是fescar?Fescar(Fast& Easy Commit and Rollback)是一个用于微服务架构的分布式事务解决方案,它的特点是高性能且易于使用,旨在实现简单并快速的事务提交与回滚。Fescar的演变历史: TXC:Taobao Transaction Const...

2019-12-01 22:08:27 251

原创 关于分布式事务的解决方案

三篇写的不错的文章提供参考:http://www.uml.org.cn/zjjs/201810091.asp --深入理解分布式事务,高并发下分布式事务的解决方案https://blog.51cto.com/11821908/2058651 --分布式一致性算法2PC和3PChttps://dbaplus.cn/news-159-1929-1.html --分布式事务主流解...

2019-11-25 16:08:30 97

原创 分布式理论——CAP定理

目录:什么是CAP CAP的组合分析 BASE理论1.什么是CAP?2000 年的时候,Eric Brewer 教授提出了 CAP 猜想,2年后,被 Seth Gilbert 和 Nancy Lynch 从理论上证明了猜想的可能性,从此,CAP 理论正式在学术上成为了分布式计算领域的公认定理。并深深的影响了分布式计算的发展。CAP原则又称CAP定理,指的是在一个分布式系统中...

2019-11-23 16:31:02 242

原创 jar包启动中的JVM参数设置

1.nohupnohup: 不挂断的运行,注意并没有后台运行的功能.用nohup命令可以使命令永久的执行,和客户端没有任何关系.&: 后台运行nohup java -jar xxx.jar & 可以让jar包一直后台运行缺省的情况下会默认将信息输出到nohup.out文件中2.-server启动server版的jvm3.JVM的内存分配-Xms: 分配堆...

2019-11-12 19:52:13 13931

原创 网络连接

例,浏览器访问服务端流程:1.解析域名,获取ip1)调用本地Socket库的解析器 gethostbyname2)Socket委托协议栈发送udp协议找到最近的DNS服务器3)DNS从根域逐次递减向下级查找,直到找到完整对应的域名,返回ip2.客户端连接服务端:1)客户端调用本地Socket库组件创建套接字,会返回该套接字的描述符2)管道连接,客户端向Socket库...

2019-08-30 16:53:49 258 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除