0

Jenkins 学习笔记

本学习笔记参考《Jenkins 2.x实践指南》。1. Jenkins 简介#Jenkins 是一款自动化的任务执行工具。通常用于持续集成/持续交付领域。可以通过界面或Jenkinsfile告诉Jenkins执行什么任务,何时执行。理论上,我们可以让它执行任何任务,但是通常只应用于持续集成和持续交付。持续集成将软件生产过程从手工模式带入流水线模式,软件生产的某个环节都对应流水线上的每个环节。流水线模式还能帮助我们将知识固化到自动化流水线中,在一定程度上解决了知识被人带走的问题。(手工模式对于整个软件生产流程很少有人全部知道,使用流水线模式整个软件生产的过程都以pipeline as code的...

阅读全文>>

1

Java的“泛型”特性,你以为自己会了?(万字长文)

使用Java的小伙伴,对于Java的一些高级特性一定再熟悉不过了,例如集合、反射、泛型、注解等等,这些可以说我们在平时开发中是经常使用到的,尤其是集合,基本是只要写代码没有用不到的,今天我们先来谈谈泛型。1. 定义在了解一个事物之前,我们必定要先知道他的定义,所以我们就从定义开始,去一步一步揭开泛型的神秘面纱。# 泛型(generics) 他是 JDK5 中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。泛型的本质就是参数化类型,也就是所操作的数据类型被指定为一个参数 # 常见的泛型的类型表示 上面的 T 仅仅类似一个形参的作用,名字实际上...

阅读全文>>

0

分享BigDecimalUtil类

/** * @Title: * @Description: 数学计算 */ public class BigDecimalUtil { /** * 功能描述: <br> * 精确度 */ private static final int DEF_DIV_SCALE = 5; /** * 提供精确的加法运算。 * @param v1 加数 * @param v2 被加数 * @return 两个参数的和 */ public static BigDecimal su...

阅读全文>>

1

再见 Shiro!权限认证我选择 Sa-Token:简单、优雅

Sa-Token 介绍Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题。Sa-Token 的 API 设计非常简单,有多简单呢?以登录认证为例,你只需要:// 在登录时写入当前会话的账号id StpUtil.login(10001); // 然后在需要校验登录处调用以下方法: // 如果当前会话未登录,这句代码会抛出 `NotLoginException` 异常 StpUtil.checkLogin(); 复制代码至此,我们已经借助 Sa-Token 完成登录认证!此时的...

阅读全文>>

0

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 week");6、获取上周时间 strtotime("-1 week");7、HTML中时间戳转换 {$time|date="Y-m-d H:i:s",###}8、PHP 获取特定时间段的开始时间与结束...

阅读全文>>

1

JAVA中直接用Jdbc就能操作数据库了,为什么还要用spring框架?

不过随着业务的扩展,你就会发现jdbc建立一个连接居然要几百毫秒,而执行一个普通的SQL仅仅需要几毫秒。这么重量级的资源建立了就释放了不合适,得找个容器存起来,谁要就来取,不用了就还给容器,毕竟容器里的借取比建立一个连接要快的多。这样的容器叫做数据连接池。小日子继续过,业务也越做越大,慢慢地你就发现了:这jdbc的接口也太粗暴了,有一大半的代码在往bean里塞数据,下标还是从1开始的。这时候你就会想,要不独立一层,专门处理把jdbc读取出来的数据塞进bean里吧。这一层就是DAO,data access object,比较出名的框架就是myBatis。公司越做越大,你也在不断尝试新鲜的技术,并...

阅读全文>>

0

Java教程:Java Float类

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

阅读全文>>

1

从一次netty 内存泄露问题来看netty对POST请求的解析

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

阅读全文>>

1

一次订单号重复引起的事故,可把我给坑惨了

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

阅读全文>>

1

Feign接口实现上传多个文件的坑

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

阅读全文>>