java
不秃头的程序员.
这个作者很懒,什么都没留下…
展开
-
java调用https,SSL证书问题
重新定义认证方式,已到达认证通过的目的此方法只支持https单向认证public class SSLClient extends DefaultHttpClient { public SSLClient() throws Exception{ super(); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() {原创 2021-12-28 10:56:06 · 597 阅读 · 0 评论 -
HashMap为什么线程不安全
jdk8,会出现数据覆盖的情况hash源码final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; if ((tab = table) == null || (n = tab.length) == 0) n = (tab = resize(原创 2021-10-26 15:34:12 · 97 阅读 · 0 评论 -
java 上传、下载、删除文件接口
上传 /** * 上传文件 * @param request * @param name 设置文件名,不更改名称填null * @param path 默认文件路径 * @param os os[0]文件最大值(单位KB)os[1]传request的name,获得文件路径 * @param os1 * @return String[0]为0,String[1]文件全名,String[2]文件全路径,String[3]文件大小 * @throws Exception原创 2021-10-26 14:15:58 · 1107 阅读 · 0 评论 -
关于Redis分布式锁和Zookeeper锁的小结
一 为什么需要分布式锁?我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来「互斥」,以保证共享变量的正确性,其使用范围是在「同一个进程」中。如果换做是多个进程,需要同时操作一个共享资源,如何互斥呢?例如,现在的业务应用通常都是微服务架构,这也意味着一个应用会部署多个进程,那这多个进程如果需要修改 MySQL 中的同一行记录时,为了避免操作乱序导致数据错误,此时,我们就需要引入「分布式锁」来解决这个问题了。想要实现分布式锁,必须借助一个外部系统,所有进程都去这个系统上申请转载 2021-09-13 16:40:11 · 120 阅读 · 0 评论 -
openLDAP win安装部署及java CRUD接口
目录概述测试环境安装过程配置启动客户端介绍多级DC的ldif文件的配置java接口编写测试[一]、概述什么叫LDAP呢,概念的东西这里就不多讲了,网上搜索下有很多,本文的重点是介绍如何在windows平台上安装和配置openLDAP软件。openLDAP官方网站:http://www.openldap.org/[二]、测试环境window10 – 64位openLDAP 版本:2.4.49官网下载地址:https://www.maxcrc.de/download/本人下载地址原创 2021-09-13 15:37:07 · 689 阅读 · 0 评论 -
关于tomcat乱码问题整理
1.startup.bat启动, 也就tomcat黑窗口启动, 乱码在tomact的conf中logging.properties文件把java.util.logging.ConsoleHandler.encoding = UTF-8 改为GBK解释:GBK包含全部中文字符,UTF-8则包含全世界所有国家需要用到的字符。GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。比如,如果是UT原创 2021-07-28 11:03:42 · 246 阅读 · 0 评论 -
idea打war,并tomcat发布
1:打开Project Structure界面(快捷键是Shift+ctrl+alt+s)第二步,选择Artifacts一栏:第三步,选择你自己的项目(一般来说只要运行过IDEA项目的,这一步可以忽略):第四步:第六步,选择这里:第七步,大功告成:tomcat启动路径: localhost:tomcat端口号(默认端口8080)/war包名称比如: war包叫, test.war地址就是 localhost:8080/test...原创 2021-06-18 10:19:42 · 107 阅读 · 0 评论 -
跨城冗灾处理
跨城容灾方案说明:正常使用主域名调用,备域名需有流量,保证业务能实时切换。当域名出现请求超时、读写超时,自动换备域名重试。交易主链路和交易备链路做好动态流量分配,保证遇到异常能够自动切换。例如可以统计主备域名的连接耗时、丢包率、业务失败率,出现异常情况(例如5秒钟内统计业务失败率超过50%)可自动切换到最优链路。3.1.2.方案流程图...原创 2021-05-31 16:21:37 · 253 阅读 · 0 评论 -
支付宝的同步和异步的区别
第一种理解同步是给客户看的,异步是服务器处理请求。同步是客户充值或者支付成功了,给客户一个提示,告诉客户这个操作的结果是成功还是失败。起到的作用就是提示客户这个操作的结果是成功还是失败。异步是服务器在后端处理支付成功或失败时的业务逻辑。同步通知:用于用户在支付宝页面付款完毕后自动跳转;异步通知:其实是处理业务逻辑,比如说修改客户的支付状态;同步得到通知后跳转到自己的网址,然后根据参数告诉客户支付结果,然后在更新状态。异步其实就是一个双保险,如果同步没有跳转你的网址,可能是关机了,或者网速慢,无法原创 2021-05-31 10:52:42 · 1425 阅读 · 0 评论 -
支付宝支付demo
####1、下载导入项目https://docs.open.alipay.com/54/104506 打开支付宝接口官网:我们下载Java版Demo下载之后解压,然后我们用IDEA导入这个Demo项目~然后,我们下载一个我们后面需要生成生成RSA密钥的工具:链接: https://docs.open.alipay.com/291/105971由于我是在Win平台开发,所以下载自己操作系统对应的版本就行:下载之后我们就先放一边啦~导入项目之后,我们要查看自己导入的项目是否报错,如果出现报错原创 2021-05-31 10:51:14 · 1379 阅读 · 0 评论 -
钉钉内网穿透
1.下载软件链接: https://github.com/open-dingtalk/pierced.git 2.使用打开cmd, 进入钉钉内网穿透的Windows目录启动命令 ding.exe -config=./ding.cfg -subdomain=xxx 8080xxx是自定义名称, 可以随便写, 8080是端口号, 按照项目端口号修改...原创 2021-05-28 14:54:37 · 599 阅读 · 0 评论 -
SpringBoot对接支付宝支付接口
最近需要对接支付宝的支付接口,官方文档写得内容有点分散,整理了一下发布出来,用作记录,同时也希望对不了解情况的人有所帮助,这里以电脑端的网页支付为例。开发主要分为三个步骤:一、生成私钥公钥。二、建立应用。三、沙箱环境。四、接口开发一、生成私钥公钥生成密钥的官网文档:官网文档官方文档讲得已经很详细,按照步骤来即可,记得保存好公钥与私钥,下面需要用到二、建立应用1.首先进入蚂蚁金服开放平台的首页,通过支付宝账户登录,登录的时候要选择一个身份,这个选自研开发者吧,反正后面可以拓展2.在蚂蚁金服的首页原创 2021-05-28 09:56:29 · 709 阅读 · 2 评论 -
SSM项目对接 阿里云短信
1.注册阿里云账号2.阿里云官网:https://www.aliyun.com/3.设置短信签名注册成功后,点击登录按钮进行登录。 登录后选择 控制台首页 右上角 点击选择 短信服务进入短信服务管理页面,选择国内消息菜单:签名: 项目名称适用场景: 验证码 (一人只可以设置一个)目前个人用户只可以申请 验证码的签名4.设置短信模板5. 设置 access Key在发送短信时需要进行身份认证,只有认证通过才能发送短信。本小节就是要设置用于发送短信时进行身份认证的key和密钥。鼠原创 2021-05-27 15:49:44 · 592 阅读 · 0 评论 -
SpringBoot对接阿里云短信
阿里云短信首先没用过的玩家需要去阿里云注册账户,然后开启两个私钥,这两个密钥是我们的必需品然后去申请签名和模版,这个也是我们的必需品现在不怎么好申请了,建议申请理由都写成个人项目测试啥的,过不了就多申请几次,上面两个环境已经装备好了的你,找到充值入口,随便充点钱进去 (一块钱其实就可以了!哭)官方文档阅读官方提供了文档说明、ApiDemo、入参出参说明,这个还是比较详细的,但你以为你就能跑起来的话,我信你个鬼哦!唯一需要注意的地方就是上图中我圈出来的这个地方,它的值是我们发送验证码的值,原创 2021-05-27 15:40:27 · 366 阅读 · 0 评论