-
若依cloud前后端分离版本详解(ruoyi-cloud)
一、项目构建流程: 下载对应若依代码:https://gitee.com/y_project/RuoYi-Cloud?_from=gitee_search 下载nacos,配置nacos 运行脚本文件 项目里有脚本文件 ③启动nacos startup.cmd -m standalone (需要配置jdk环境变量) http://localhost:8848/naco...
-
PHP中new self()和new static()的区别探究
1.new static()是在PHP5.3版本中引入的新特性。 2.无论是new static()还是new self(),都是new了一个新的对象。 3.这两个方法new出来的对象有什么区别呢,说白了就是new出来的到底是同一个类实例还是不同的类实例呢? 为了探究上面的问题,我们先上一段简单的代码: class Father { p...
-
MyBatis Generator 代码自动生成器,从此解放你的双手
前言在日常开发工作中,我们往往需要自己去构建各种数据表所对应的持久化对象(PO)、用于操作数据库的接口(DAO)以及跟 DAO 所绑定的对应 XML。这都是一些重复性的操作,不需要多大技术含量,这时候我们不禁会去想,有没有一种工具,能够帮助我们去自动生成这些文件呢?答案是:有的!本文接下来的内容主要适用于使用 MyBatis 来做持久层框架开发的工作,如果不是使用 MyBati...
-
使用HttpClient多线程收集数据
public Map<String, String> main(){ try { PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); CloseableHttpClient httpClient = HttpClients.cus...
-
C#调用bat文件
一、生成bat文件生成bat文件可以直接通过文本文档写入bat内容,然后将文件后缀名改成bat即可,这里介绍用C#生成bat文件的方法。/// <summary> /// 生成bat文件 /// </summary> /// <param name="fileContent">文件内容</param> public void cr...
-
Spring Boot+OAuth2,一个注解搞定单点登录!
需要先说一下,最近写的教程,都是成系列的,有一些重复的东西写来写去就没意思了,所以每一篇文章都默认大家已经懂了前面的内容了,因此下文有任何看不懂的地方,建议一定先看下相关系列:「Spring Security 系列:」挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么解密了手把手教你定制 Spring Secur...
-
iText7实现PDF电子签章
本文记录iText7实现PDF电子签章 提前准备 1、keystore文件,生成自签名证书,猛戳:SpringBoot系列——启用https打开cmd,执行以下命令 keytool -genkeypair -alias stamper -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore e...
-
「Java工具类」java8时间日期工具类,整个项目有它就足够了
正文:先上工具类使用例子:System.out.println("2019-11-03=2019-11-04吗?答案是:" + Java8DatetimeUtil .equals(Java8DatetimeUtil.parseDate("2019-11-03"), Java8DatetimeUtil.parseDate("2019-11...
-
Jenkins 学习笔记
本学习笔记参考《Jenkins 2.x实践指南》。1. Jenkins 简介#Jenkins 是一款自动化的任务执行工具。通常用于持续集成/持续交付领域。可以通过界面或Jenkinsfile告诉Jenkins执行什么任务,何时执行。理论上,我们可以让它执行任何任务,但是通常只应用于持续集成和持续交付。持续集成将软件生产过程从手工模式带入流水线模式,软件生产的某个环节都对应流水线...
-
Java的“泛型”特性,你以为自己会了?(万字长文)
使用Java的小伙伴,对于Java的一些高级特性一定再熟悉不过了,例如集合、反射、泛型、注解等等,这些可以说我们在平时开发中是经常使用到的,尤其是集合,基本是只要写代码没有用不到的,今天我们先来谈谈泛型。1. 定义在了解一个事物之前,我们必定要先知道他的定义,所以我们就从定义开始,去一步一步揭开泛型的神秘面纱。# 泛型(generics) 他是 JDK5 中引入的一个新特性,泛...
-
分享BigDecimalUtil类
/** * @Title: * @Description: 数学计算 */ public class BigDecimalUtil { /** * 功能描述: <br> * 精确度 */ private static final int DEF_DIV_SCALE = 5; /** * 提供精...
-
再见 Shiro!权限认证我选择 Sa-Token:简单、优雅
Sa-Token 介绍Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题。Sa-Token 的 API 设计非常简单,有多简单呢?以登录认证为例,你只需要:// 在登录时写入当前会话的账号id StpUtil.login(10001); // 然后在需要校验...
-
PHP关于获取时间的方法
1、时间转换函数 date("Y-m-d H:i:s",$time);2、获取当天凌晨时间戳 $todaytime=strtotime("today");3、获取明天时间 strtotime("+1 day");4、获取昨天时间 strtotime("-1 day");5、获取下周时间 strtotime("+1 w...
-
JAVA中直接用Jdbc就能操作数据库了,为什么还要用spring框架?
不过随着业务的扩展,你就会发现jdbc建立一个连接居然要几百毫秒,而执行一个普通的SQL仅仅需要几毫秒。这么重量级的资源建立了就释放了不合适,得找个容器存起来,谁要就来取,不用了就还给容器,毕竟容器里的借取比建立一个连接要快的多。这样的容器叫做数据连接池。小日子继续过,业务也越做越大,慢慢地你就发现了:这jdbc的接口也太粗暴了,有一大半的代码在往bean里塞数据,下标还是从1...
-
Java教程:Java Float类
Float类在对象中包装了一个基本类型float的值。Float类对象包含一个float类型的字段。此外,该类提供了多个方法,能在float类型与String类型之间互相转换,同时还提供了处理float类型时比较常用的常量和方法。Float类的构造方法Float类中的构造方法有以下3个。Float(double value):构造一个新分配的Float对象,它表示转换为floa...
-
从一次netty 内存泄露问题来看netty对POST请求的解析
背景最近生产环境一个基于 netty 的网关服务频繁 full gc观察内存占用,并把时间维度拉的比较长,可以看到可用内存有明显的下降趋势出现这种情况,按往常的经验,多半是内存泄露了问题定位找运维在生产环境 dump 了快照文件,一分析,果然不出所料,在一个 LinkedHashSet 里面, 放入 N 多的临时文件路径可以看到,该 LinkedHashSet 是被类 Dele...
-
一次订单号重复引起的事故,可把我给坑惨了
我们线上出了一次事故,这个事故的表象是这样的:系统出现了两个一模一样的订单号,订单的内容却不是不一样的,而且系统在按照订单号查询的时候一直跑错,也没法正常回调,而且事情发生的不止一次,所以这次系统升级一定要解决掉。经手的同事之前也改过几次,不过效果始终不好,总会出现订单号重复的问题,所以趁着这次问题我好好地理了一下我同事写的代码。这里简要展示下当时的代码:/** * OD单号...
-
Feign接口实现上传多个文件的坑
前言这段时间需要做一个公共的上传文件资源的服务,可以通过前端直接调用上传文件;还有需求可以通过后台服务通过Feign接口方式 ,调用上传文件资源服务。在这过程中,遇到了一些问题,老顾在这里留个tag,避免小伙伴们也遇到相似的问题流程上面流程是常规的上传文件的2种方式,我们下面先来看看,正常的代码代码后台文件服务文件服务支持单个文件,以及多个文件上传Feign接口通过feign接...
-
Netty对Executor实现机制分析
ThreadPerTaskExecutorThreadPerTaskExecutor每一个任务的执行器(代理和命令模式)线程解耦(执行线程和创建线程)public final class ThreadPerTaskExecutor implements Executor { //定义一个私有的线程工厂 private final ThreadFactory thr...
-
统一认证授权平台keycloak初体验
上一篇文章简单介绍了Keycloak,反响不错。看来大家都对这个东西感兴趣,今天就来进一步的体验Keycloak,让我们对它有一个直观的认识,然后逐步深入,把它的设计理念和概念各个击破。总体思路因为事先已经知道Keycloak提供了Spring Security的适配器。先独立把Keycloak的核心概念弄清楚,然后再去研究它如何结合Spring Security的。安装Key...
-
CKEditor 4.16.2 发布,修复浏览器兼容性问题
CKEditor 4.16.2 维护版本已发布。此版本是一个维护版本,更新内容包括修复安全问题、修复浏览器兼容性问题、升级与 React 的集成,以及修复其他重要问题。修复安全问题修复了剪贴板插件中的安全漏洞 (CVE-2021-32809),该漏洞会引起出现滥用粘贴功能(使用格式错误的 HTML )的情况,进而导致将任意的 HTML 注入编辑器。此外,在 Widget 插件中...
-
OAuth2.1授权服务器Spring Authorization Server正式孵化成功
今天Spring官方宣布 Spring Authorization Server 已正式退出实验状态并进入Spring 项目的产品家族!Spring 官方声明此举恰逢本周的 0.2.0 版本发布,这是第一个正式支持的生产就绪版本。自2020 年 4 月Spring Authorization Server公布以来以来,已经实现了OAuth 2.1 授权协议的绝大部分,并为 Op...
-
8月份Github上Java开源项目排行
8月份GitHub上最热门的Java开源项目排行已经出炉啦,一起来看看上榜详情吧1dataeasehttps://github.com/dataease/dataease Star 2472DataEase是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与...
-
推荐!从零设计所见即所得的H5编辑器
前言前段时间笔者一直忙于数据可视化方面的工作,比如如何实现拖拽式生成可视化大屏,如何定制可视化图表交互和数据导入方案等,这块需求在B端企业中应用非常大,所以非常有探索价值。本篇文章并非和数据可视化相关,而是通过抽象技术底层,将其应用于H5页面可视化搭建上,通过技术的手段实现拖拽式生成H5页面。这块也有非常多的应用场景,比如我们需要开发一个移动端网站,一个H5营销页面,H5活动页...
-
认识工作流程引擎
相关概念BPM:Business Process Modeling,业务管理流程,是对实现生活工作中的流程问题进行抽象建模来推导解决方案。BPMN:Business Process Model and Notation,一种流程建模描述语言,是业务流程建模的一种标准注解BPMN2.0:专业组织和团体发布的一套标准或规范,定义业务流程的符号以及模型,确保流程的定义实现可移植性Wf...
-
授权码模式(authorization code)获取access_token
1.oauth2获取access_token的几种方式:简化模式(implicit):在redirect_url中传递access_token,oauth客户端运行在浏览器中。密码模式(password):将用户名和密码传过去,直接获取access_token。客户端模式(client credentials):用户向客户端注册,然后客户端以自己的名义向“服务端”获取资源。授权...
-
Uni-App一套代码多端(iOS、Android、H5、以及各种小程序)运行
了解 Uni-Appuni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。即使不跨端,uni-app同时也是更好的小程序开发框架。uni-app 是由 DCloud 公司打造的,DCloud公司拥有340万开发者用户,旗下uni-app有5万+...
-
高并发高性能的定时器实现
前言我们经常都会碰到延迟任务,定时任务这种需求。在网络连接的场景中,常常会出现一些超时控制。随着连接数量的增加,这些超时任务的数量往往也是很庞大的。实现对大量任务的超时管理并不是一个容易的事情。几种定时任务的实现java.util.TimerJDK 在 1.3 的时候引入了Timer数据结构用于实现定时任务。Timer的实现思路比较简单,其内部有两个主要属性:TaskQueue...
-
Spring 中 @Component、@Service 等注解如何被解析?
前言@Component和@Service都是工作中常用的注解,Spring如何解析?1.@Component解析流程找入口Spring Framework2.0开始,引入可扩展的XML编程机制,该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpath下的/META-INF/spring.handlers中。如上图所示 Con...
-
MyBatis 执行流程及源码解析
我们在日常工作中广泛使用mybatis作为数据持久层框架, 但是mybatis的执行流程是怎么样的,你了解过吗。本文将从源码角度,带你分析mybatis的工作原理。先看一个简单的例子,以Service调用Mapper接口为例:public interface StudentMapper { @Select("select * from student") pub...