
大厂任性挑
文章平均质量分 63
HD243608836
这个作者很懒,什么都没留下…
展开
-
SpringBoot配置Cors解决跨域请求问题
转载自,原文格式更漂亮清晰:https://www.cnblogs.com/yuansc/p/9076604.html一、同源策略简介同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。 同源策略是浏览器安全的基石。什么是源源[origin]就是协议、域名和端口号。例如:http://www.baidu.com:80这个URL。什么是同源若地址里面的协议、域名和端口号均相同则属于同源。是否是同源的判断转载 2021-08-30 15:12:19 · 306 阅读 · 0 评论 -
Mybatis的flushCache的select、update等不同标签中的默认值
flushCache默认为false(select),表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。 但是在insert、update、delete语句时: flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。参考自:https://blog.youkuaiyun.com/u014749862/article/details/80297943...原创 2021-08-10 00:28:57 · 694 阅读 · 0 评论 -
【转载】一键生成数据库文档,堪称数据库界的Swagger,有点厉害
本文收录在个人博客:www.chengxy-nds.top,技术资料共享,同进步最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台。需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的。为了不重复 CV 操作,抱着一丝希望开始在GitHub里找,看看有没有什么工具可以用,结果就真的发现了宝藏,screw(螺丝钉),居然可以生成数据库文档,优秀啊~。数据库文档图一、数据库支持MySQL MariaDB TIDB .转载 2021-07-29 17:52:29 · 216 阅读 · 0 评论 -
springBoot 整合 hikari
Hikari是一款非常强大,高效,并且号称“史上最快连接池”。并且在springboot2.0之后,采用的默认数据库连接池就是Hikari。不需要引入依赖,已经在SpringBoot中包含了。GitHub地址:https://github.com/brettwooldridge/HikariCP在 application.yml 中可如下配置:spring: datasource: url: jdbc:mysql://localhost:3306/user_center h转载 2021-07-29 17:31:14 · 1737 阅读 · 0 评论 -
【编程思维纠正】学习编程照着别人的代码敲进去有效率吗?(好文章!)
写在前面:把问题领域和编程问题分开考虑。问题领域:解决问题的方法、步骤编程问题:语法、如何实现步骤不要以 “写代码” 的方式直接思考问题领域中的问题,否则就会让你的思维更加混乱。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~正好最近公司一个同事想学编程。就把这个贡献给题主了~~~每一门学科都有它自己的思维方式,学习的过程就是通过它的知识描述、实例、习题来去感知这门学科究竟是用什么样的思维去运作的。转载 2021-07-20 17:57:17 · 1677 阅读 · 0 评论 -
ssl证书双向认证访问https—解决javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure(好文章)
背景今天尝试用Java去访问一个https接口,但抛出下面的异常:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure解决过程(个人发现)建议如果是ssl双向认证的,先看看是不是客户端证书文件路径获取有问题(debug一下,看看是不是null),导致没携带证书访问https服务器,也会报这个handshake_failure错误。遇到问题首先去Google,然后在 javax.n.转载 2021-07-14 11:14:32 · 6512 阅读 · 0 评论 -
java实现HTTPS单向认证&TLS指定加密套件(文章很详细,好文章!)
1、HTTPS介绍 由于HTTP是明文传输,会造成安全隐患,所以在一些特定场景中,必须使用HTTPS协议,简单来说HTTPS=HTTP+SSL/TLS。服务端和客户端的信息传输都是通过TLS进行加密。这样就能在一定程度上避免敏感信息被截取。在通信过程中,请求方称为客户端,响应方称为服务端。HTTPS请求流程如图:1、客户端向服务端发送加密版本、加密算法种类、随机数信息等。2、服务端返回客户端发送的信息并带上服务端证书(公钥证书)。3、客户端效验服务端证书的合法性。4、...转载 2021-07-13 19:26:42 · 7137 阅读 · 0 评论 -
如何使用Java访问ssl双向认证的Https资源——三种方式(好文章!)
本文的相关源码位于https://github.com/dreamingodd/CA-generation-demo0.Nginx配置Https双向认证首先配置Https双向认证的服务器资源。可以参考:http://www.cnblogs.com/dreamingodd/p/7357029.html完成之后如下效果:1.导入cacerts进行访问首先将服务器证书导入keystore cacerts,默认密码为changeit,如果需要修改密码就改一下。keytoo..转载 2021-07-13 17:52:29 · 3334 阅读 · 0 评论 -
ssl证书CA双向认证完整实现步骤(附java客户端代码)(好文章!)
一、基础概念注:以下概念除专业名词外,均为个人理解,不具备权威性。1、什么是系统安全管理置于公网的系统,通常都需要一定的安全管理,据我个人理解,这里的安全管理主要分三个方面:一是应用内的权限控制,比如具体应用的用户名、密码等;二是应用数据传输过程中的安全机制,例如各种报文的加解密方案;三是数据传输前的通讯安全机制,保证通讯双方都是可靠可信任的,PKI就是其中一个解决方案。2、什么是PKIPKI是 Public Key Infrastructure的简称,意思是公钥基础设施。公钥基转载 2021-07-13 17:45:58 · 6173 阅读 · 0 评论 -
java使用keytool 的ssl证书的导入、查看与删除——彻底解决unable to find valid certification path to requested target(好文章!)
安装证书。一、下载证书第一步是要下载证书去你程序要访问的网站,点击那个锁按钮,并点击查看详情(chrome浏览器)点击View certificate点击详细信息复制到文件下一步选择格式生成的名称,最后保存这里我保存在的D盘根目录下叫abc.cer二、导入证书切换到jre的/lib/security/下执行如下命令keytool -import -alias abc -keystore cacerts -file转载 2021-07-13 17:19:43 · 4577 阅读 · 0 评论 -
【原创】SpringBoot实现使用httpclient配合restTemplate验证服务器与服务器之间调用接口的TLS/SSL证书双向认证(精简版,附真实项目代码)
我的项目是服务器与服务器之间调接口,调用是需要ssl证书双向认证的。yml中配置:## 证书双向认证配置(本系统作为客户端)client: ssl: abs: # jks与pkcs12(即pfx)都可以。type不区分大小写 # path: ssl/abs/abs@aaa.abc.com.jks # type: JKS path: ssl/abs/abs@aaa.abc.com.pfx type: PKCS原创 2021-07-13 17:01:20 · 1905 阅读 · 1 评论 -
关于getClass(),Object.class,getClassLoader的理解
1、对Class类的理解:Class类包含了类的信息,如构造方法、方法、属性,可用于反射。以下是所有方法2、获取Class类对象的几种方法:Test test = new Test();(1).test.getClass(); 在运行时确定,所以运行实例才是该类对象。super.getClass()不能获得父类的类对象,仍然是当前类对象。 获得父类类对象:test.getClass().getSuperclass()class Father{ public...转载 2021-07-08 13:13:08 · 475 阅读 · 0 评论 -
ssl证书忽略https域名校验不通过(好文章!)
公司有一些标准的对外https服务,内部调用也需要走https的方式,但是可以用内部IP,这个时候就会遇到证书校验域名不通过的问题,需要忽略。本文分别介绍curl,wget和okhttp中忽略域名校验的方法curl错误内容curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.忽略方式 一种是添加临时域名解析缓存.转载 2021-07-08 11:18:32 · 3893 阅读 · 0 评论 -
如何使用HttpClient配合restTemplate来发送带客户端证书的请求,以及如何忽略掉对服务器端证书的校验(ssl证书双向认证)(好文章!)
最近要做客户端和服务器端的双向认证,在客户端向服务器端发送带证书的请求这里有一点问题,网上的例子大多都不太好使,于是找了github上httpclient源代码中的例子改造了一下,终于弄明白了github上我参考的例子在:https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/examples/org/apache/http/examples/client/ClientCustomSSL.java下面先贴上我自己的代码(需要导入.转载 2021-07-07 19:51:36 · 1076 阅读 · 0 评论 -
配置SpringBoot实现使用httpclient配合restTemplate验证服务器与服务器之间调用接口的TLS/SSL证书双向认证(精辟!亲测可用!附真实项目代码)
单向认证我们在通常访问一个网站,例如https://www.baidu.com,这是一个单向的TLS认证,具体的过程为:服务器发送证书给客户端,客户端校验证书。验证证书有效之后,客户端和服务器协商出一个对称加密密钥由服务端的私钥加密,客户端收到之后再用公钥解密这个对称密钥,然后就开始了传输层加密之旅。这种时候,服务端并不校验客户端的合法性,来者不拒,绝大部分的网站都是这种类型。例如查看百度:[root@iZbp1g905y8l5pclnbxvfxZ ~]# curl https://www.b转载 2021-07-07 19:26:26 · 3162 阅读 · 0 评论 -
OpenSSL学习(二十):基础-指令s_client(方便查看与server交互的详细信息,我主要用于ssl证书双向认证)(好文章!)
用法: openssls_client[-connecthost:port>;][-verifydepth][-certfilename][-keyfilename][-CApathdirectory][-CAfilefilename][-reconnect][-pause][-showcerts][-debug][-nbio_test][-state][-nbio][-crlf]...转载 2021-07-07 19:19:37 · 9912 阅读 · 0 评论 -
【原创】nginx上配置SSL双向认证的CA证书链(工具openssl)
配置SSL双向认证的CA证书链时,其中最关键的两步骤:ssl_client_certificateca.crt;#包含证书链的ca.crt ssl_verify_depth 2;# 指定双向认证客户端证书到根证书的深度,默认是1配置如下:# HTTPS server#server { listen 443 ssl; listen 8110 ssl; server_name aaa.abc.com; ssl on; ssl_certif...原创 2021-07-06 20:27:25 · 7133 阅读 · 0 评论 -
SSL/TLS深度解析--在Nginx上openssl配置CA证书链及多域名证书(好文章,配置很全面!!)
该文章配置很全面但是有些地方有冗余的配置,我只归纳提取了简化了本文的ssl双向认证时CA为证书链的相关配置,链接为:原文如下:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~生成私钥与自签根证书(这次使用aes256加密,密码是redhat)# 进行简单处理[root@www ~]# cd /usr/local/openssl/[root@www openssl]# mkdir root-CA sub-CA[root@www openssl]# cp -r转载 2021-07-06 19:57:14 · 3011 阅读 · 0 评论 -
【原创】linux与windows的PFX(p12)证书文件中openssl提取公钥私钥crt与curl命令访问
一、证书原版PFX证书openssl pkcs12 -in myssl.pfx -nodes -out client.pem (使用这步骤就ok了,因为pem格式可以打开了)(-nodes表示导出时不对私钥进行加密)提取私钥openssl rsa -in client.pem -out client.key提出公钥openssl x509 -in client.pem -out client.crt注意:windows的git bash for windows需要每原创 2021-06-30 15:48:22 · 2291 阅读 · 0 评论 -
MySQL commit一个dml,先写redolog 还是先记binlog顺序(这个图很好!好文章!)
mysql commit一个dml,在开启了binlog的情况下,为了保证binlog跟redo log 数据的一致性,mysql引入了两阶段提交。在事务commit的时候,会在两阶段提交的commit阶段,先将整个事务写入redolog,此时redolog还没有commit的标识。然后会将事务写入binlog,binlog commit成功之后,才会将commit标识写入redo log,并且告诉引擎层进行事务的提交。以上的图片中可以看到,事务的提交主要分为两个主要步骤:1. 准备阶段(Sto转载 2021-06-25 18:37:00 · 1300 阅读 · 0 评论 -
MySQL5.7半同步复制AFTER SYNC&AFTER COMMIT(好文章,原理讲解很透彻!)
今天主要剖析一下MySQL 5.7增强半同步的AFTER SYNC和AFTER COMMIT的区别。如果我们生产库对数据的一致性要求比较高,那么我们一般会开启了半同步复制,但在MySQL5.5/5.6里,会存在数据不一致的风险。比如有如下场景,客户端提交了一个事务,master把binlog发送给slave,在发送的期间,网络出现波动,此时Binlog Dump线程发送就会卡住,要等待slave把binlog写到本地的relay-log里,然后给master一个反馈,等待的时间以rpl_semi_...转载 2021-06-25 18:32:28 · 2630 阅读 · 1 评论 -
MySQL半同步复制(文章讲解很透彻!)
从MySQL5.5开始,MySQL以插件的形式支持半同步复制。如何理解半同步呢?首先我们来看看异步,全同步的概念一、三种同步异步复制(Asynchronous replication)MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。全同步复制(Fully synchronous转载 2021-06-25 16:59:56 · 5193 阅读 · 2 评论 -
简单谈谈MySQL的半同步复制
从MySQL5.5开始,MySQL以插件的形式支持半同步复制。如何理解半同步呢?今天我们就来详细讲解下,希望大家能够喜欢。简介MySQL通过复制(Replication)实现存储系统的高可用。目前,MySQL支持的复制方式有:异步复制(Asynchronous Replication):原理最简单,性能最好。但是主备之间数据不一致的概率很大。 半同步复制(Semi-synchronous Replication):相比异步复制,半同步复制牺牲了一定的性能,提升了主备之间数据的一致性(有一些情况转载 2021-06-25 16:59:07 · 406 阅读 · 0 评论 -
mysql主从(半同步及增强半同步区别) (简单明了,好文章!)
半同步复制特点MySQL5.5开始推出半同步复制 半同步复制:至少有一个Slave节点收到binlog后再返回(IO线程接收到即可) 特点: 1.减少数据丢失风险 2.不能完全避免数据丢失 3.超时后,切换回异步复制(配置半同步复制需要先配置异步复制) 主从原理解析:5.6与5.7主从区别主要是主库的事务提交的时机不同,从而对主库性能影响不同。 1.mysql5.6主从原理解析: 参数:AFTER_COMMIT(5.6默.转载 2021-06-25 14:54:19 · 2732 阅读 · 0 评论 -
Mysql tinyint长度为1时在java中被转化成boolean型——踩坑(好文章!)
在项目中遇到一个巨坑,程序没问题,从mysql查询到的tinyint数据中莫名其妙的变成了布尔类型,导致后续出错。这种细节性的问题,只有遇到时才会关注到,记录备忘。下面是详细解释:在项目中有一个字段为user_type,长度设置为1,表示注册用户和非注册用户,是注册用户为 1,否则为 2。因为查询语句是使用的Jfinal相关函数,查找到其中的获取数据类型字段程序,如下所示:在图中光标处断点发现,通过getObeject后,类型变为boolean。而其中tinyint长度为4的,经过转化后没有问转载 2021-06-24 22:44:10 · 1301 阅读 · 0 评论 -
【项目实例】git合并分支——关于git rebase使用的项目实例
前几天开发代码,遇到了个问题:分支结构:master-------dev1 --------dev2原创 2021-06-10 15:39:18 · 352 阅读 · 0 评论 -
git merge 合并时 --no-ff 的作用——主要影响版本回退(好文章!)
在许多介绍 Git 工作流的文章里,都会推荐在合并分支时,加上--no-ff参数: $ git checkout develop $ git merge --no-ff feature --no-ff在这的作用是禁止快进式合并。Git 合并两个分支时,如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,叫做“快进”(fast-forward),比如下图: A---B---C feature / D-...转载 2021-06-04 17:23:22 · 1798 阅读 · 0 评论 -
mysql中count带条件查询——count( 条件 or null )(好文章!)
方法一:SELECT count( t.command_name = 'UNLOCK' OR NULL ) unlockFrequencyFROM表 t1234567方法二:select count(t.command_name) from t where t.command_name = 'UNLOCK'1方法三:select count(if( t.command_name = 'UNLOCK' ,1,null)) fr...转载 2021-06-04 14:20:21 · 12169 阅读 · 6 评论 -
git reset --hard HEAD与git revert HEAD区别(简单明了!)
git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交 * git revert HEAD 撤销前一次 commit * git revert HEAD^ 撤销前前一次 commit * git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交...转载 2021-05-31 18:35:47 · 2293 阅读 · 0 评论 -
git的rebase与merge的区别(简单明了!!)
现在我们有这样的两个分支,test和master,提交如下:在master执行git merge test,然后会得到如下结果:在master执行git rebase test,然后得到如下结果:可以看到,merge操作会生成一个新的节点,之前的提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。如果你想要一个干净的,没有merge commit的线性历史树,那么你应该选择git rebase如果你想保留完整的历史记录,并且想...转载 2021-05-31 18:12:36 · 1447 阅读 · 0 评论 -
Java中Long型数据类型对应MySQL数据库中哪种类型对应关系?
Long型id数据对应MySQL数据库中 bigint 数据类型; System.out.println(1==1L); //ture System.out.println(1L); //1 System.out.println(1L+"2"); //12java类 mysql数据库java.lang.Byte byte TINYINTjava.lang.Short short...转载 2021-05-28 17:51:50 · 4902 阅读 · 0 评论 -
MySQL bigint(20),int(11),建表zerofill是什么意思(好文章!!简单明了!)
MySQL中我们建表的时候,类型可以用bigint(20), 这是什么意思呢?首先我们看bigint, MySQL的整型类型有这样几种:类型 占用字节 tinyint 1 smallint 2 mediumint 3 int 4 bigint 8 这是决定存储需要占用多少字节,那么后边的数字(M)代表什么意思呢tinyint(M),M默认为4;SMALLINT(M),M默认为6...转载 2021-05-28 16:55:22 · 1491 阅读 · 0 评论 -
怎么理解 IaaS、SaaS 和 PaaS 的区别?(简单明了!)
如果你是一个网站站长,想要建立一个网站。不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序。现在你追随潮流,采用流行的云计算,如果你采用IaaS服务,那么意味着你就不用自己买服务器了,随便在哪家购买虚拟机,但是还是需要自己装服务器软件而如果你采用PaaS的服务,那么意味着你既不需要买服务器,也不需要自己装服务器软件,只需要自己开发网站程序如果你再进一步,购买某些在线论坛或者在线网店的服务,这意味着你也不用自己开发网站程序,只需要使用它们开发好的程序,而且他们会负责程序的升级、转载 2021-05-28 13:55:36 · 298 阅读 · 0 评论 -
nginx无法跳转后端返回404 not found (前后端分离开发)
查看nginx error日志:open() "/usr/local/oag/oag_web/user/login" failed (2: No such file or directory)又很多种原因,但是经过一步步排查,我这是因为:location 过滤的拦截路径在前端和后端都没配置,导致nginx的拦截前端请求跳转后端失败所以把前后端的访问路径都添加上路径/abcApi即可...原创 2021-05-27 11:19:35 · 730 阅读 · 0 评论 -
解决spring循环依赖的问题:has been injected into other beans——使用@Lazy(好文章!!)
首先说一下什么是依赖循环,比如:我现在有一个ServiceA需要调用ServiceB的方法,那么ServiceA就依赖于ServiceB,那在ServiceB中再调用ServiceA的方法,就形成了循环依赖。Spring在初始化bean的时候就不知道先初始化哪个bean就会报错。publicclassClassA{@AutowiredClassBclassB;} publicclassClassB{@AutowiredClassAclassA;} 解决办法是进...转载 2021-05-26 10:39:45 · 634 阅读 · 0 评论 -
Java高质量面试总结(好文章!!)
高质量的Java面试面试考察内容和方式基础知识深入考察业务相关工作交接面试准备面试内容Java基础线程Java线程池数据结构Spring数据库分布式JVM网络面试一般都是由浅到深去问,思路是:先考察基础是否过关,因为基础知识决定了一个技术人员发展的上限再通过深度考察是否有技术热情和深度以及技术的广度同时可能会提出一些质疑和挑战来考察候选人能否与有不同意见的人沟通考察内容和方式基础知识技术上深度与广度兼顾基础知识: 考察基础的时候一般都不会深入地去问,主要目转载 2021-05-25 11:11:58 · 256 阅读 · 0 评论 -
真正搞懂hashCode和hash算法(重点是HashMap的hash方法如何充分打散分配计算出数组下标的)(高手文章!)
有兴趣可以看一下,HashMap的是如何使用hash算法充分尽力打散到16个桶的(即计算出数组下标):(n - 1) & hash也就是说hashmap是通过数组长度-1&key的hash值来计算出数组下标的,这里的hash值就是上面(h = key.hashCode()) ^ (h >>> 16)计算出来的值请转到博客查看原文详细:https://blog.youkuaiyun.com/qq_33709582/article/details/113337405.转载 2021-05-14 17:23:50 · 539 阅读 · 0 评论 -
Arrays.asList得到的list不能add和remove,会触发UnsupportedOperationException异常(坑!看源码!好文章!)
我们先来重温一下题目,有什么疑问的可以移步传送门。String[]和List< String >的区别及相互转换public class test { public static void main(String[] args) { //定义一个字符长度为5的字符串 String[] strings = new String[5]; strings[0] = "a"; strings[1] = "b"; strings[2] = "c";转载 2021-05-13 18:15:28 · 342 阅读 · 0 评论 -
Arrays.sort() VS Arrays.parallelSort()(好文章!)
英文原文地址:Arrays.sort vs Arrays.parallelSort作者:baeldung翻译:高行行1. 概述我们都使用过 Arrays.sort() 对对象或原始数据类型数组(byte,short,int,long,char,float,double和boolean)进行排序。在 JDK 8 中,创造者增强了 API 以提供一种新方法:Arrays.parallelSort()。在本教程中,我们将对 sort() 和 parallelSort() 方法进行比较。.转载 2021-05-13 15:13:53 · 315 阅读 · 0 评论 -
public static <T> List<T> asList(T... a) 原型是怎么回事?(终于明白了!好文章!)
<T>是申明T为泛型,以区别于类名即:<T> List<T> 中,第一个T是告诉大家,T不是类T.class,而是泛型T(如果只写List<T>则编译器以为是类T.class,如果不存在T.class类,则报错)。public class A {}案例1. public static <A> List<A> asList(A... a);案例2. public static List<A> asList(A转载 2021-05-12 16:47:24 · 2222 阅读 · 0 评论