杨青波 | Blog

杨青波的个人博客

Java8 函数式接口Function大家族

关于Java8 function 包中系列接口的简介 Java8 中在 java.util.function 包中定义了一系列的函数式接口,主要包含五大类: - Function: 函数接口,主要作用是定义一个类似method的函数(用来代替匿名内部类最合适不过了),给定入参,返回出参,理论上以下四个function的功能都可以用Function接口实现,所以它是一种很综合全面的接口 - P......

关于二次开发开源项目的理解(redash)

关于二次开发的一些思考 很多同学因为想要对某些技术深耕,又或是因为面试会问去了解技术的底层原理之类的,但是很难坚持或是看不懂之类的。其实阅读源码,了解底层原理这东西最好还是结合实际情况来进行。比如你是一个Java Developer 但是你项目中并没有怎么深度使用elasticsearch但是你因为想要学的更多一点去自己阅读elasticsearch的源码,大概率你会坚持不下来,这主要是你压......

git的进阶指南(配置git代理)

Windows下的git代理配置 由于近些年国内访问github速度慢且很不稳定,所以作为一名合格的程序员你一定需要一个科学梯子,这是本次教程的一个前提。 关于github 相信只要你有一个梯子你就可以给访问github加速,但是对于git clone、 push、 pull 很多人表示龟速,以下从两个角度介绍一下Windows下如何给git 命令加速 git的代理配置 对于git clon......

状态模式在生产实践中的应用

状态模式 生产实践中的状态模式应用 模拟场景 现有一个电影管理系统,对于电影有状态转移图,如下,对于不同权限的人员有不同的状态流转。 现在我们设计对于监管人员它可以控制电影的上下架,对于上映方它能决定电影上下架但不能决定电影永久下架等。总之就是不同人员能操作的电影生命周期状态是不一样的。 场景分析 为快速满足需求,最便捷的方式当然是使用if、else来判断所有可能的场景,或者switch。......

git的进阶指南(git cherry-pick)

git cherry-pick 关于 git cherry-pick 的含义和适用场景 cherry-pick的简介 cherry-pick (捡樱桃),顾名思义:是在一堆樱桃(commit)中挑选出自己想要的樱桃(commit)。 cherry-pick的功能 cherry-pick 的功能:在某一个分支中的commit中选出一个或多个commit提交到另一个分支。 cherry-pick......

如何本地调试微信登录

申请微信登录的前置条件 你必须有一个已经在公网可以访问的域名网址,并且是有内容的,在开发前期可以只有一个 index.html 也是没有关系的,只要网站域名过审了就行. 你需要在微信开放平台申请创建一个应用,不管你是创建手机应用, 网页, 微信小程序,都需要申请创建. 申请创建应用过程中你需要注意以下几点: 申请微信开发者账号不能是私人邮箱,必须绑定的是公司邮箱 需要上传一个网站登录表......

nginx系列(一) 配置SSL证书

安装证书全流程 下载证书压缩包并解压,生成证书的key和pem 如下图是我在阿里云的证书,点击下载。 选择你需要的类型,我使用nginx,下载了nginx的版本。 解压证书压缩包,生成key和 pem,如下图所示。上传至服务器即可,服务器路径可随意,记住路径即可。 配置nginx.conf使ssl证书生效 server { 1234567891011121314......

MySQL中关于emoji表情的存储(微信登录出现登录失败【由于微信昵称字符问题】)

问题描述 今天网站遇到用户说登录失败,查看日志发现是微信登录自动生成用户时,用户创建失败。其中部分的日志如下: 1234567{ Cause: java.sql.SQLException: Incorrect string value: '\\xF0\\x9F\\xA6\\x84 ...' for column 'nick_name' at......

基于阿里云的Docker安装Jenkins

环境准备 由于是Maven的Java项目,所以我们需要现在服务器上安装JDK,Maven和Git。 由于阿里云服务器默认不安装wget,所以我先安装一个wget script1yum install wget 安装JDK script1yum install -y java-1.8.0-openjdk 安装Maven script1234wget https://mirrors.bfsu.e......

Java的getDeclaredField和getField的使用和区别,以及如何获取父类的私有字段

getDeclaredFields 和 getFields 的区别 getDeclaredFields方法仅对类本身的字段有效果,对于继承的父类的字段无效 getFields方法只能获取类及其父类的公共字段 获取父类的私有字段需要先使用getSuperClass获取父类Class,然后通过父类Class的getDeclaredFields方法获取父类的所有字段 示例演示 这是我们定义的......