• Jenkins 学习笔记

    本学习笔记参考《Jenkins 2.x实践指南》。1. Jenkins 简介#Jenkins 是一款自动化的任务执行工具。通常用于持续集成/持续交付领域。可以通过界面或Jenkinsfile告诉Jenkins执行什么任务,何时执行。理论上,我们可以让它执行任何任务,但是通常只应用于持续集成和持续交付。持续集成将软件生产过程从手工模式带入流水线模式,软件生产的某个环节都对应流水线...

    Java 2021年09月14日 158 0
  • Java的“泛型”特性,你以为自己会了?(万字长文)

    使用Java的小伙伴,对于Java的一些高级特性一定再熟悉不过了,例如集合、反射、泛型、注解等等,这些可以说我们在平时开发中是经常使用到的,尤其是集合,基本是只要写代码没有用不到的,今天我们先来谈谈泛型。1. 定义在了解一个事物之前,我们必定要先知道他的定义,所以我们就从定义开始,去一步一步揭开泛型的神秘面纱。# 泛型(generics) 他是 JDK5 中引入的一个新特性,泛...

    Java 2021年09月14日 133 0
  • 分享BigDecimalUtil类

    /** * @Title: * @Description: 数学计算 */ public class BigDecimalUtil { /** * 功能描述: <br> * 精确度 */ private static final int DEF_DIV_SCALE = 5; /** * 提供精...

    Java 2021年09月14日 96 0
  • 再见 Shiro!权限认证我选择 Sa-Token:简单、优雅

    Sa-Token 介绍Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题。Sa-Token 的 API 设计非常简单,有多简单呢?以登录认证为例,你只需要:// 在登录时写入当前会话的账号id StpUtil.login(10001); // 然后在需要校验...

    Java 2021年09月09日 277 0
  • JAVA中直接用Jdbc就能操作数据库了,为什么还要用spring框架?

    不过随着业务的扩展,你就会发现jdbc建立一个连接居然要几百毫秒,而执行一个普通的SQL仅仅需要几毫秒。这么重量级的资源建立了就释放了不合适,得找个容器存起来,谁要就来取,不用了就还给容器,毕竟容器里的借取比建立一个连接要快的多。这样的容器叫做数据连接池。小日子继续过,业务也越做越大,慢慢地你就发现了:这jdbc的接口也太粗暴了,有一大半的代码在往bean里塞数据,下标还是从1...

    Java 2021年09月01日 159 0
  • Java教程:Java Float类

    Float类在对象中包装了一个基本类型float的值。Float类对象包含一个float类型的字段。此外,该类提供了多个方法,能在float类型与String类型之间互相转换,同时还提供了处理float类型时比较常用的常量和方法。Float类的构造方法Float类中的构造方法有以下3个。Float(double value):构造一个新分配的Float对象,它表示转换为floa...

    Java 2021年08月31日 130 0
  • 从一次netty 内存泄露问题来看netty对POST请求的解析

    背景最近生产环境一个基于 netty 的网关服务频繁 full gc观察内存占用,并把时间维度拉的比较长,可以看到可用内存有明显的下降趋势出现这种情况,按往常的经验,多半是内存泄露了问题定位找运维在生产环境 dump 了快照文件,一分析,果然不出所料,在一个 LinkedHashSet 里面, 放入 N 多的临时文件路径可以看到,该 LinkedHashSet 是被类 Dele...

    Java 2021年08月25日 141 0
  • 一次订单号重复引起的事故,可把我给坑惨了

    我们线上出了一次事故,这个事故的表象是这样的:系统出现了两个一模一样的订单号,订单的内容却不是不一样的,而且系统在按照订单号查询的时候一直跑错,也没法正常回调,而且事情发生的不止一次,所以这次系统升级一定要解决掉。经手的同事之前也改过几次,不过效果始终不好,总会出现订单号重复的问题,所以趁着这次问题我好好地理了一下我同事写的代码。这里简要展示下当时的代码:/** * OD单号...

    Java 2021年08月24日 146 0
  • Feign接口实现上传多个文件的坑

    前言这段时间需要做一个公共的上传文件资源的服务,可以通过前端直接调用上传文件;还有需求可以通过后台服务通过Feign接口方式 ,调用上传文件资源服务。在这过程中,遇到了一些问题,老顾在这里留个tag,避免小伙伴们也遇到相似的问题流程上面流程是常规的上传文件的2种方式,我们下面先来看看,正常的代码代码后台文件服务文件服务支持单个文件,以及多个文件上传Feign接口通过feign接...

    Java 2021年08月23日 162 0
  • Netty对Executor实现机制分析

    ThreadPerTaskExecutorThreadPerTaskExecutor每一个任务的执行器(代理和命令模式)线程解耦(执行线程和创建线程)public final class ThreadPerTaskExecutor implements Executor { //定义一个私有的线程工厂 private final ThreadFactory thr...

    Java 2021年08月23日 144 0
  • 统一认证授权平台keycloak初体验

    上一篇文章简单介绍了Keycloak,反响不错。看来大家都对这个东西感兴趣,今天就来进一步的体验Keycloak,让我们对它有一个直观的认识,然后逐步深入,把它的设计理念和概念各个击破。总体思路因为事先已经知道Keycloak提供了Spring Security的适配器。先独立把Keycloak的核心概念弄清楚,然后再去研究它如何结合Spring Security的。安装Key...

    Java 2021年08月23日 136 0
  • CKEditor 4.16.2 发布,修复浏览器兼容性问题

    CKEditor 4.16.2 维护版本已发布。此版本是一个维护版本,更新内容包括修复安全问题、修复浏览器兼容性问题、升级与 React 的集成,以及修复其他重要问题。修复安全问题修复了剪贴板插件中的安全漏洞 (CVE-2021-32809),该漏洞会引起出现滥用粘贴功能(使用格式错误的 HTML )的情况,进而导致将任意的 HTML 注入编辑器。此外,在 Widget 插件中...

    Java 2021年08月19日 138 0
  • OAuth2.1授权服务器Spring Authorization Server正式孵化成功

    今天Spring官方宣布 Spring Authorization Server 已正式退出实验状态并进入Spring 项目的产品家族!Spring 官方声明此举恰逢本周的 0.2.0 版本发布,这是第一个正式支持的生产就绪版本。自2020 年 4 月Spring Authorization Server公布以来以来,已经实现了OAuth 2.1 授权协议的绝大部分,并为 Op...

    Java 2021年08月18日 145 0
  • 8月份Github上Java开源项目排行

    8月份GitHub上最热门的Java开源项目排行已经出炉啦,一起来看看上榜详情吧1dataeasehttps://github.com/dataease/dataease Star 2472DataEase是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与...

    Java 2021年08月18日 142 0
  • 认识工作流程引擎

    相关概念BPM:Business Process Modeling,业务管理流程,是对实现生活工作中的流程问题进行抽象建模来推导解决方案。BPMN:Business Process Model and Notation,一种流程建模描述语言,是业务流程建模的一种标准注解BPMN2.0:专业组织和团体发布的一套标准或规范,定义业务流程的符号以及模型,确保流程的定义实现可移植性Wf...

    Java 2021年08月16日 132 0
  • 授权码模式(authorization code)获取access_token

    1.oauth2获取access_token的几种方式:简化模式(implicit):在redirect_url中传递access_token,oauth客户端运行在浏览器中。密码模式(password):将用户名和密码传过去,直接获取access_token。客户端模式(client credentials):用户向客户端注册,然后客户端以自己的名义向“服务端”获取资源。授权...

    Java 2021年08月16日 193 0
  • 高并发高性能的定时器实现

    前言我们经常都会碰到延迟任务,定时任务这种需求。在网络连接的场景中,常常会出现一些超时控制。随着连接数量的增加,这些超时任务的数量往往也是很庞大的。实现对大量任务的超时管理并不是一个容易的事情。几种定时任务的实现java.util.TimerJDK 在 1.3 的时候引入了Timer数据结构用于实现定时任务。Timer的实现思路比较简单,其内部有两个主要属性:TaskQueue...

    Java 2021年08月13日 166 0
  • Spring 中 @Component、@Service 等注解如何被解析?

    前言@Component和@Service都是工作中常用的注解,Spring如何解析?1.@Component解析流程找入口Spring Framework2.0开始,引入可扩展的XML编程机制,该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpath下的/META-INF/spring.handlers中。如上图所示 Con...

    Java 2021年08月12日 185 0
  • MyBatis 执行流程及源码解析

    我们在日常工作中广泛使用mybatis作为数据持久层框架, 但是mybatis的执行流程是怎么样的,你了解过吗。本文将从源码角度,带你分析mybatis的工作原理。先看一个简单的例子,以Service调用Mapper接口为例:public interface StudentMapper { @Select("select * from student") pub...

    Java 2021年08月12日 157 0
  • 撸个Spring Boot中的starter,解密自动化配置

    starter背景Spring Boot目前已经变成了后端开发者必备技能之一,其中一个主要原因是Spring Boot中有个非常重要的机制(starter机制)。starter能够抛弃以前繁杂的配置,将其统一集成进starter,使用的时候只需要在maven中引入对应的starter依赖即可,Spring Boot就能自动扫描到要加载的信息并启动相应的默认配置。starter让...

    Java 2021年07月22日 230 0
  • Spring Boot搭建 ELK,这才是正确看日志的方式

    在看大型网站的中间件技术,对于Elasticsearch有点兴趣,所以将配置流程记录了一下。为什么要用ELK“ELK实际上是三个工具,Elastricsearch + LogStash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但...

    Java 2021年07月20日 201 0
  • 使用Debezium、Postgres和Kafka进行数据实时采集(CDC)

    1. 背景一直在完善自己的微服务架构,其中包含分布式工作流服务的建设,目前采用的是Camunda工作流引擎。使用Camunda工作流,就会涉及到工作流引擎的用户体系如何与现有用户体系集成的问题(Flowable、Activity也类似)。现有设计中,工作流定位偏重于企业内部流程的流转,因此系统中设计了单位、部门、人员以及人事归属与Camunda工作流用户体系对应。功能设计完成,...

    Java 2021年07月20日 184 0
  • MyBatisPlus集成

    1-5 MyBatisPlus集成  接下来我们完成一个品牌的CRUD操作、我们会集成MyBatisPlus来实现。1、MyBatis Plus介绍  MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis Plus特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影...

    Java 2021年07月12日 317 0
  • 为第三方HTTP协议依赖增加Hystrix保护你的系统

    为第三方HTTP协议依赖增加Hystrix保护你的系统前言后端开发的很多同学应该都有过调用第三方HTTP协议服务的经验。比如调用百度查询经纬度编码信息、调用豆瓣查询时下热门电影、调用7牛云存储接口上传文件等;以及公司内部其他小组开放的服务接口。常见开发模式是我们按照服务提供方定义的接口文档进行接口调用开发。在java中常见的HTTP客户端库有:java中常见的HTTP客户端库你...

    Java 2021年07月06日 216 0
  • 基于netty的构建一个群聊系统

    要求1.群聊系统可以实现服务器端和客户端之间的数据简单通讯(非阻塞)2.通过系统可以实现多人群聊3.服务器端:可以监控用户上线,离线,并实现消息转发功能4.客户端:通过channel可以无阻塞发送消息给其它所有用户,同时可以接受到其它用户发送的消息(由服务端转发得到)代码实现(服务端) import java.io.IOException; import java.net.I...

    Java 2021年05月25日 334 0
  • Spring Boot 极简集成 Shiro

    1. 前言Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理。Shiro有三大核心组件:Subject:即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用户信息,Subject 不仅仅代表某个用户,与当前应用交互的任何东西都是Subjec...

    Java 2021年04月21日 360 0
  • MiniDao1.7.1 版本发布,轻量级Java持久化框架

    项目介绍MiniDao 是一款轻量级JAVA持久层框架,基于 SpringJdbc + Freemarker 实现,具备Mybatis一样的SQL分离和逻辑标签能力。Minidao产生的初衷是为了解决Hibernate项目,在复杂SQL具备Mybatis一样的灵活能力,同时支持事务同步。当前版本:v1.7.1 | 2021-03-29源码下载https://github.com...

    Java 2021年03月30日 392 0
  • ConcurrentSkipListMap原理

    跳表为了引出 ConcurrentSkipListMap,先带着大家简单理解一下跳表。对于一个单链表,即使链表是有序的,如果我们想要在其中查找某个数据,也只能从头到尾遍历链表,这样效率自然就会很低。跳表就不一样了。跳表是一种可以用来快速查找的数据结构,有点类似于平衡树。它们都可以对元素进行快速的查找。但一个重要的区别是:对平衡树的插入和删除往往很可能导致平衡树进行一次全局的调整...

    Java 2021年03月18日 567 0
  • ruoyi前后端分离框架增加只通过用户名认证获取token

    背景:最近选型使用ruoyi的前后端分离框架进行研发,除了管理系统部分还有小程序部分功能,需要提供api给小程序部分,而小程序使用openid关联用户名,这样希望提供只根据用户名能够获取token进行后续后台服务接口的访问需求,具体改造如下:增加5个关键类和一个测试类 修改一个config类,具体如下:拦截特殊验证的拦截器类package com.ruoyi.framework...

    Java 2021年03月18日 1359 0
  • 深入理解Java文件读写的底层实现

    继 《Java文件的简单读写、随机读写、NIO读写与使用MappedByteBuffer读写》,本篇通过调用Linux OS文件操作系统函数实现copy命令以加深我们对Java文件读写底层实现的理解。本篇内容包括:文件操作系统函数实战:实现文件拷贝命令实战:使用mmap实现文件拷贝命令文件操作系统函数本篇将介绍的函数有:open、close、write、lseek、read、m...

    Java 2021年03月10日 589 0