一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂)

一、简介
二、并发编程的3个基本概念
1.原子性
2.可见性
3.有序性
三、锁的互斥和可见性
四、Java的内存模型JMM以及共享变量的可见性
五、volatile变量的特性
1.保证可见性,不保证原子性
2.禁止指令重排
六、volatile不适用的场景
七、volatile原理
八、单例模式的双重锁为什么要加volatile

龙生   26 Feb 2024
View Details

IDEA——》解决Command line is too long

1)找到项目下的.idea/workspace.xml
2)打开文件,找到标签:PropertiesComponent
3)添加一行属性:


其它属性代码不要修改,只添加下面一行属性代码

龙生   26 Feb 2024
View Details

ChatGPT用Java写的读写PDF的代码

用的Apache PDFBox库 读:

  写:

 

龙生   25 Feb 2024
View Details

spring-cloud-oauth2升级版本遇到的认证报bad credentials,Encoded password does not look likebcrypt的问题

记录一下今天工作的时候升级一个认证服务遇到的小问题,虽然最后解决只有一行代码,却花了差不多3个小时。

初始版本为

springboot 1.5.9.RELEASE
springcloud Dalston.SR1

升级为

springboot 2.0.3.RELEASE
springcloude finchley.RELEASE

升级改造完成之后,服务运行正常,但是请求认证的时候报错:

http://localhost:9000/oauth/token?grant_type=password&scope=app&client_id=client_2&client_secret=123456&username=user&password=123456

回复

{
“error”: “invalid_client”,
“error_description”: “Bad client credentials”
}

龙生   01 Feb 2024
View Details

OAuth2.0系列五:OAuth2.0客户端凭证

客户端通过客户端的id和secret申请授权,这种方式给出的令牌,是针对第三方应用的,而不是针对用户的,即有可能多个用户共享同一个令牌。

龙生   01 Feb 2024
View Details

OAuth2.0四种授权模式及实战

首先我们得了解什么是Oauth2.0,简单来说Oauth2.0它是一个授权协议。我们可能会听说过,使用Oauth2.0来实现单点登录SSO,以及第三方登录。那个什么是授权?

举个通俗易懂的例子,就是第三方人员A要想进入B公司的大厦进行业务交流的时候,因为A并不是B公司的员工,出于安全的缘故,所以他不能够自由的出入B公司的大厦。那个A到了B公司前台的时候,A得去前台和B公司前台工作人员说明来意,并且出示邀请(访问)证明,此时B公司前台工作人员就会给你一张临时工牌让你进入大厦。

在这个例子当中,A没有工牌所以是无法进入B公司大厦里进行业务交流,B公司前台给A一张临时工牌,这个操作就相当于授权。

总的来说,OAuth 2.0 这种授权协议,就是保证第三方(软件)只有在获得授权之后,才可以进一步访问授权者的数据。

龙生   01 Feb 2024
View Details

【Java】RestTemplate设置header

开发中使用RestTemplate来进行访问,设置请求头的方法: 方法一:单独设置

方法二:公共设置,使用interceptor拦截器设置 1.添加拦截器

  2.配置RestTemplate Bean

  3.使用RestTemplate Bean

  from:https://www.cnblogs.com/z-Z-/p/15932021.html

龙生   30 Jan 2024
View Details

谁说Java不行,有了这个类库,你也能实现OCR识别!

OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;

现在有很多软件都支持这个功能,比如钉钉就支持扫描图片后直接转成文字。

在OCR识别领域,有一个开源的项目——Tesseract,Tesseract是一個光学字符识别引擎。Tesseract是基于Apache许可证的自由软件,自2006 年起由Google赞助开发。2006年,Tesseract被认为是最精准的开源光学字符识别引擎之一。

龙生   14 Jan 2024
View Details

OCR开源项目对比总结

OCR是什么?
光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。

目前发展现状
ocr的发展已经有了非常多的积累,一般人或者企业使用, 都是直接使用第三方的服务,目前提供第三方服务的大企业也非常多,百度,阿里云,腾讯等等,都提供了非常方便的api接口,可以进行调用,识别的速度、精确度和效果也都是非常不错的。唯一的缺点就是api的调用是需要收费的,对于调用频次不高的个人和企业,这个费用还是非常低的。

龙生   14 Jan 2024
View Details