0

OAuth2.0 技术选型参考

1. 前言在使用 OAuth2.0 中 Authorization Server (授权服务器)是一个回避不了的设施,在大多数情况下我们调用的是一些知名的、可靠的、可信任的第三方平台,比如 QQ、微信、微博、github 等。我们的应用只作为 Client 进行注册接入即可。也就是说我们只需要实现 OAuth2.0 客户端的逻辑就可以了,无须关心授权服务器的实现。然而有时候我们依然希望构建自己的 Authorization Server。我们应该如何实现?今天不会讨论具体的技术细节,来谈谈 OAuth2.0 的技术选型。2. Spring Security OAuth2 现状在做 Spring...

阅读全文>>

0

YYYY-MM-DD 的黑锅,我们不背

写这篇博文是记录下跨年的bug。去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误。当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据。今天逛技术论论坛正好遇到Java日期的操作bug。1 yyyy 和 YYYY别看字,看代码输出结果:2019-12-31 转 YYYY/MM/dd 格式: 2020/12/312020-01-01 转 YYYY/MM/dd 格式: 2020/01/012019-12-31 转 yyyy/MM/dd 格式: 2019/12/312020-01-01 转 yyyy/MM/dd 格式: 2020/01/01细心的同学应该...

阅读全文>>

0

java生成pdf

直入正题:所需ar包具体代码:package com.medmeeting.core;import com.itextpdf.text.*;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfPCell;import com.itextpdf.text.pdf.PdfPTable;import com.itextpdf.text.pdf.PdfWriter;import java.io.FileOutputStream;import java.util.List;/*** @Date: 2019/11/26...

阅读全文>>

0

String 有多长?

1 String的形式public final class StringString类是由final修饰的,所以是不能被继承的①,我们在对字符串进行比较时,一般是期望对比其中的字符串是否一样,所以这里我们不能用"=="进行字符串的比较,而是需要使用"equals"方法②,因为使用==进行比较时,是比较的对象,只有指向同一个字符串对象的才会是true,否则就算字符串值相同也可能出现不相等的情况。private final char value;String的值实际上是以char的数组存储的,并且是final的,所以字符串对象是不可变的③,但是我们可以看到字符串的一些操作会误导我们,比如使用:St...

阅读全文>>

0

5种创建Java对象的方式

在本篇文章中,将介绍5种创建Java对象的方式。类是创建对象的基本模板,接下来将介绍5种不同的方式,利用Java类来实例化Java对象。1. 使用new关键字​ 采用new关键字实例化对象是Java中最为常见的方法,下面是采用new关键字实例化对象的示例。在开始之前,我们先准备好一个Java类:Student.java。package com.ramostear.oops;public class Student{ private String name; private String nickname; public Student(String name,String n...

阅读全文>>

0

分布式任务调度xxl-job

前言碎语在单机应用时期,任务调度一般都是基于spring schedule和集成quartz来实现的,当系统发展成分布式服务,应用多实例的时候,任务就会出现多次调用的问题,很多时候我们任务并不需要跑多次。解决方案有很多,最最简单粗暴的就是可以设置应用开关。其次就是集中式话任务管理调度。当然,quartz也有集群模式,但是基于api控制并不直观。下面介绍一个集中式的分布式任务调度框架,可以很方便的解决分布式任务调度的问题一,xxl-job简介XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。功能如下...

阅读全文>>

0

分布式唯一ID生成器

在应用程序中,经常需要全局唯一的ID作为数据库主键。如何生成全局唯一ID?首先,需要确定全局唯一ID是整型还是字符串?如果是字符串,那么现有的UUID就完全满足需求,不需要额外的工作。缺点是字符串作为ID占用空间大,索引效率比整型低。如果采用整型作为ID,那么首先排除掉32位int类型,因为范围太小,必须使用64位long型。采用整型作为ID时,如何生成自增、全局唯一且不重复的ID?方案一:利用数据库的自增ID,从1开始,基本可以做到连续递增。Oracle可以用SEQUENCE,MySQL可以用主键的AUTO_INCREMENT,虽然不能保证全局唯一,但每个表唯一,也基本满足需求。数据库自增I...

阅读全文>>

0

JavaEE技术点:MySQL目录及基本命令介绍

1.MySQL目录介绍(1)首先来看MySQL的安装目录,如图1-1所示:图1-1 MySQL的安装目录(2)图1-1中的bin目录中存放的是二进制的可执行文件,如图1-2所示:图1-2 bin目录结构(3)图1-2中的mysqld.exe是服务器程序,必须先启动它,客户端才能连接上服务器。当MySQL服务启动,可以在任务管理器中的进程中发现该进程,如图1-3所示:图1-3 mysqld.exe(4)图1-3中的mysql.exe是客户端程序,用来操作数据库服务器,但必须保证服务器已开启才能连接上。例如我们在dos窗口中连接MySQL数据库,如图1-4所示:图1-4 连接MySQL数据库(5)...

阅读全文>>

0

Mybatis-Plus 3.3.0 发布,让你专注业务快速敏捷开发

Mybatis-Plus 3.3.0 发布了,Mybatis-Plus是一款MyBatis的增强工具包,简化 CRUD 操作。启动加载 XML 配置时注入单表 SQL 操作 ,为简化开发工作、提高生产率而生。Mybatis-Plus 启动注入非拦截实现、性能更优,让你专注业务快速敏捷开发更新日志:BaseMapper 接口两个 page 方法优化IService 以及 ServiceImpl 对应 page 方法优化,个别返回 collection 的方法修改为返回 list逻辑删除字段的两个表示已删除和未删除的定义支持字符串 "null"修复批量操作未清空缓存批量操作异常转换为DataAcc...

阅读全文>>

0

甲骨文发布严重Java漏洞安全警报:攻击者可以控制和访问个人数据

Oracle已针对Java漏洞发布了安全警报,如果利用此漏洞,攻击者可以控制和访问用户的个人信息。该漏洞意味着攻击者无需用户名或密码即可访问用户的数据。仔细阅读这本书,看来受害者可能成为攻击者的猎物,攻击者可以将用户的系统变成进行其他攻击的机器人。为了获得成功,用户必须成为恶意软件攻击的受害者。它将特别攻击那些访问旨在攻击具有Java漏洞的恶意网站的人。成功的利用会影响“用户系统的可用性,完整性和机密性”。Oracle声明以下内容:由于这些漏洞的严重性,技术细节的公开披露以及“野外”对CVE-2012-4681的利用的报道,Oracle强烈建议客户尽快应用此安全警报提供的更新。Oracle W...

阅读全文>>