自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Janche的博客

所爱隔山海 山海不可平 海有舟可渡 山有路可行 此爱翻山海 山海皆可平。

  • 博客(57)
  • 资源 (5)
  • 收藏
  • 关注

原创 Mysql 自然排序

初始数据:<!-- 建表语句 -->CREATE TABLE `test` ( `id` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;<

2021-06-16 18:34:41 499

原创 Spring源码是如何解决Bean的循环依赖

首先需要明白一点,只有单例类型的Bean,spring才支持循环依赖,scope为Prototype类型的Bean是不支持的。在Spring的DefaultSingletonBeanRegistry类中,你会赫然发现类上方挂着这三个Map:singletonObjects 它是我们最熟悉的朋友,俗称“单例池”“容器”,缓存创建完成单例Bean的地方。singletonFactories 映射创建Bean的原始工厂earlySingletonObjects 映射Bean的早期引用,也就是说在这个Map

2021-05-06 16:16:14 267 2

原创 idea使用docker-mave插件打包镜像并部署到harbor私服仓库

接上篇文章,默认你已经可以通过Dockerfile发布镜像了,通过Dockerfile发布的镜像版本都是latest,有木有什么办法可以修改呢:修改TAG命令:docker tag ImgId/ImgTag newTageg: docker tag docker-demo docker-demo-2.0idea docker打包插件部署harbor私服<build> <finalName>${project.artifactId}</finalName>&lt

2021-04-14 10:59:05 903

原创 IDEA一键将springboot项目打成docker镜像并部署

一键打包部署1.在idea中下载Docker插件2. 在项目根目录新建一个Dockerfile文件Dockerfile文件内容如下:# 基础镜像使用JavaFROM java:8# 作者MAINTAINER janche# VOLUME 指定了临时文件目录为/tmp。# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmpVOLUME /tmp# 将jar包添加到容器中并更名为app.jar# 此处可以把具体的jar包名称写出来,我这

2021-04-13 17:37:51 2286 2

原创 maven 私服nexus 上传、下载 第三方jar包及springboot的依赖配置

1. 下载私服上的jar包只需要 配置 maven 的 settings.xml注意:仓库url地址是从 nexus后台 上创建仓库后得到的<!-- 在 profiles 标签里 新加 profile文件 --><profile> <!--profile的id--> <id>dev</id> <repositories> <repository> <!--仓库id,repo

2021-04-13 15:48:42 1024

原创 springboot maven 打包插件介绍及注意事项

1. springboot项目默认生成的可执行jar,为什么不能作为依赖导入其他项目?Spring Boot 项目默认的插件是spring-boot-maven-plugin:<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId></plugin>使用上面的插件会将项目A打包

2020-12-30 16:35:09 509

原创 Scala学习笔记(集合-函数算子)

集合scala同时支持不可变集合和可变集合,默认采用不可变集合,包含三大类(Seq、Set、Map)不可变集合:scala.collection.immutable可变集合: scala.collection.mutable元组Tuple元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组, 最大的特点灵活,对数据没有过多的约束。注意:元组中最大只能有22个元素// 声明val tuple1 = (1, 2, 3, "

2020-11-04 18:02:16 203

原创 Scala学习笔记(基础语法)

Scala介绍Scala 是一门多范式的编程语言,Scala支持面向对象和函数式编程Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。Spark就是使用Scala编写的,因此大部分学习scala的原因都是为了更好的学习spark这一大数据计算框架语法特点变量声明var 声明可变变量 eg: var age: Int = 18val 声明不可变变量 eg: val sex = "male

2020-10-22 18:05:17 252

原创 SpringBoot 集成 Impala + mybatis + druid

1. 获取依赖Impala的依赖在maven仓库下载不了,需要自己去官网下载: https://www.cloudera.com/downloads/connectors/impala/jdbc/2-6-3.html , 麻烦可直接去博主的GitHub项目中获取2. 配置Druid连接池Druid依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-b

2020-09-23 18:13:37 4571 5

原创 Hadoop学习笔记(四)-- HBase

HBase是什么:HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,它是Google Bigtable的开源实现,运行于HDFS文件系统之上,利用MapReduce处理数据,使用Zookeeper作为协同服务,因此可以容错地存储海量稀疏的数据。优势:海量数据存储,方便扩展快速的随机访问,独特的设计使得写操作比读操作有时更快数据存储在hdfs上,备份不用担心HBase 架构图主要组件:1. clientClient包含了访问Hbase的接口,另外Client还维护了

2020-07-28 17:58:23 229

原创 Java 模拟FTP工具操作远程服务器文件

模拟FTP功能操作文件,java多种处理方式,1. 导入FTP相关依赖<!-- ftp 所需的依赖 --><dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>262&...

2020-03-19 18:14:35 422

原创 spring-boot 项目引入第三方依赖,如何打包

项目环境:spring-bootmaven多模块项目需要引入外部jar包目录结构图如下:方式一, 打jar包,待写中。。。方式二, 打war包:1. 在对应子模块的pom.xml文件中引入jar包,本例因为在common和web 模块都引入了,因此则都需要分分别引入,common的pom.xml配置如下:groupId、artifactId、version都是可以自己随意填...

2020-02-21 21:50:39 2225

原创 UTC、GMT、时间戳之间的关系

时区世界时区的划分以本初子午线为标准,向东12个时区,向西12个时区,子午线所在区为0时区,东十二区和西十二区重合,所以一共是24个时区。GMT和UTCGMT: 即格林威治时间(Greenwich Mean Time),也是0时区的标准时间。指太阳横穿格林威治子午线(本初子午线)时的时间。但由于地球自转不均匀不规则,导致GMT不精确,现在已经不再作为世界标准时间使用。UTC: 即协调世界时...

2019-12-22 18:42:10 13174

原创 Java实现多文件的zip压缩操作 + 通过浏览器下载文件的两种方式

压缩为zip文件1. 通过java程序输出文件/** * 功能:压缩多个文件成一个zip文件 * @param srcfile:源文件列表 * @param zipfile:压缩后的文件 */public static void zipFiles(File[] srcfile, File zipfile) { byte[] buf = new byte[1024]; try {...

2019-11-06 18:32:31 6422 10

原创 hadoop学习笔记(二)-- HDFS

1. HDFS定义:HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件,它是分布式的,由很多服务器联合起来实现其功能。场景:适合一次写入,多次读出的场景,且不支持文件的修改,适合用来做数据分析,不适合做网盘应用。优点:1. 高容错性(数据保存多个副本,某个副本丢失后,可自动恢复),2. 适合处理大数据,3. 可构建在...

2019-10-31 11:33:27 280

原创 Hadoop学习笔记(一)-- 概述

Hadoop的起源发展历史2003-2004年,Google公布了部分GFS和MapReduce思想的细节,受此启发的Doug Cutting等人用2年的业余时间实现了DFS和MapReduce机制,使Nutch性能飙升。然后Yahoo招安Doug Gutting及其项目。2005年,Hadoop作为Lucene的子项目Nutch的一部分正式引入Apache基金会。2006年2月被分离出来...

2019-10-24 10:45:18 303

原创 Jenkins 的安装与使用

1. 下载Jenkins下载地址:https://jenkins.io/zh/download/选择下图中的war包下载2. 部署Jenkins2.1 启动TomcatJenkins的部署特别简单,只需要将刚下载的war包给丢在服务器的Tomcat下,启动Tomcat即完成部署。2.2 第一次访问第一次访问需要输入密码,此密码按路页面提示的路径去服务器内找到密码填上。如下图:2...

2019-10-12 18:01:56 207

原创 Linux常用命令

Linux 常用命令总结1. ls命令常用参数:-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来2. grep命令用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进...

2019-09-29 16:02:15 201

原创 基于Spring Security + OAuth2 的SSO单点登录整合时所遇到的跨域问题分析

基础环境服务端(认证中心,前后端可分离,可不分离) + 客户端技术架构:spring-security + oauth2博客详见:单点登录客户端,单点登录服务端问题描述客户端前后端分离,访问客户端前端将直接出现跨域请求,客户端后端添加跨域请求头也没用。客户端前后端不分离,将能够直接访问到客户端前端,但是客户端session失效后,继续浏览仍会出现跨域,自动跳转认证中心提供的登...

2019-09-08 13:51:55 2974

原创 代码优雅之道

1. 字符串相等的判断传统方式:thisName != null && thisName.equals(name);优雅方式Objects.equals(name, thisName);2. null对象的判断传统方式:!(list == null || list.isEmpty());优雅方式import org.apache.commons.collec...

2019-08-27 16:42:04 456 6

原创 基于Spring Security + OAuth2 的SSO单点登录(客户端)

1. 缘起为什么要把客户端单独拿出来写呢 ?博主也参考了网上很多写单点登录的,但基本上都是大同小异,在客户端的自身权限校验 和 单点退出 均未做处理,显示并不满足实际的业务开发。2. 核心流程客户端登录:用户访问客户端,客户端 security 发现此请求的用户未登录,于是将请求重定向到服务端认证,服务端检测到此请求的用户未登录,则将此请求跳转到服务端提供的登录页面(前后端分离则是前端登...

2019-08-22 18:47:17 6637 23

原创 spring-boot 集成 mybatis 通用 mapper 和 pagehelper

1. 项目所需依赖<!-- mybatis 依赖 --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1&l...

2019-08-19 18:31:38 442

转载 整理常用正则表达式

1. 验证 (三段式) 版本号的正则表达式要求,必须是三位,x.x.x的形式,每位x的范围分别为1-99,0-99,0-99。不允许的情况0.x.x;01.x.x; x.0x.x; x.00.x; x.x.00; x.x.0x符合条件的正则表达式:^([1-9]\d|[1-9])(\.([1-9]\d|\d)){2}$...

2019-08-01 11:25:46 199

原创 基于Spring Security + OAuth2 的SSO单点登录(服务端)

理论知识spring securityOAuth2JWT传统登录登录web系统后将用户信息保存在session中,sessionId写入浏览器的cookie中,每次访问系统,浏览器自动携带此cookie,服务端根据此sessionId取到相应的session,若为空则表示登录已失效,不为空则表示用户已登录,不需要用户再次输入用户名密码。单点登录单点登录是一种多站点...

2019-07-23 18:01:55 3831 5

原创 ES6 学习笔记 -- 解构赋值

1. 数组的解构赋值从数组中提取值,按照对应位置,对变量赋值let [a, b, c] = [1, 2, 3];let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3let [ , , third] = ["foo", "bar", "baz"];third // "baz"let [x, , y] ...

2019-07-22 22:52:29 163 1

原创 Spring Security + JWT 完成RBAC动态授权

此篇文章为spring security系列的第一篇,着重讲解如何通过spring security完成企业级项目的权限控制。1. 什么是RBACRBAC(Role-Based Access Control )基于角色的权限控制,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。2. JWT 和 Spring Security...

2019-07-21 14:39:18 4166 2

原创 MySQL 查询 树结构

1. 关于树结构此类结构的数据,通常需要表结构中含有id 、parentId等自关联字段,有时为了提高查询效率还可增加更多冗余字段,如index,index的值为所有父级目录的id字符串集合。关于树结构数据的组装,常见的写法是在程序中通过递归的方式去构建出一颗完整的树,单纯通过sql的方式其实并不常用,下面分别给出两种方式的例子。2. MySQL自定义函数的方式什么是MySQL自定...

2019-06-28 16:25:15 28078 7

原创 主线程等待所有子线程执行完后关闭

1. 使用join()方法,让主线程等待join的意思是使得放弃当前线程的执行,等待引用线程执行完毕。public class MyThread implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName() + ...

2019-06-24 10:46:26 6781 3

原创 Java 通过反射获取私有构造、私有对象、私有字段、私有方法

1. 创建测试的私有对象/** * @author lirong * @desc 测试对象 * @date 2019/06/20 20:07 */public class Person { private int age = 5; private String name; private Person(){} private String tes...

2019-06-20 21:23:45 3818

原创 Hexo(yilia)+Github实现相册和音频功能

效果图,请先点这里:https://janche.github.io/photos/1. 需要准备的资料1. 本文为hexo-theme-yilia主题,其他hexo主题请另行百度2. GitHub上新建一个仓库存储照片(此仓库的作用除了储存还负责更新hexo博客引用的图片链接地址),为了少走弯路,请直接fork原作者的仓库(https://github.com/lawlite19/Blo...

2019-06-16 23:04:31 1037 4

原创 Runtime 调用Process.waitfor导致的阻塞问题

1. 关于Runtime类的小知识1. Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法2. Runtime中的exit方法是退出JVM...

2019-06-13 17:38:17 2533 1

原创 为什么要使用serialVersionUID

1. 序列化是什么把对象转换为字节序列的过程称为对象的序列化 。把字节序列恢复为对象的过程称为对象的反序列化。2. Java中如何使用序列化只需要让对象实现 Serializable接口即可,如下:/** * @author lirong * @desc 序列化类 * @date 2019/05/18 12:04 */public class Person implem...

2019-05-19 18:27:46 553

原创 JS 数组删除某一个元素

JS 删除数组中某一个元素方式一: 在Array原型对象上添加删除方法 // 查找指定的元素在数组中的位置 Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) { ...

2019-05-14 14:12:29 47830

原创 OAuth2相关数据表字段的详细说明

OAuth2 数据库表说明文档以下对OAuth2数据库字段的功能做详细说明:(此文档添加了create_time扩展字段) 表名 字段名 字段说明 oauth_client_details...

2019-04-27 23:00:09 13594 7

原创 Spring Boot OAuth2 整合(授权码和password的数据库配置方式)

教程由来:项目需要为第三方客户端提供授权和资源访问,无疑OAuth2现在是最好的方式,如果OAuth2相关知识大家还不够了解,请移步到阮一峰的理解OAuth2.0,本文实战为主,理论方面请自行查阅相关资料。1. OAuth2的四种模式授权码模式(authorization code)(最正统的方式,也是目前绝大多数系统所采用的)(支持refresh token) (用在服务端应用之间)...

2019-04-27 12:22:38 9455 31

原创 配置spring-security对redis中session的同步处理,通过sessionRegistry统计在线用户

问题描述:登录用户的session在redis失效、清除或者用户退出系统后,系统中的sessionRegistry中session依然存在,并未同步失效系统架构:Springboot2 + SpringSecurity + spring-session-data-redis + Redis1. Redis配置(当然可以只加注解,使用默认配置)/** redis配置 */@Confi...

2019-04-15 15:25:01 8357 6

原创 java.lang.IllegalStateException: getOutputStream() has already been called for this response

前情提要:1. 本项目为前后端分离项目,采用JSON数据进行通信。2. 此异常出现在后端的异常统一处理方法出3. 正常本机情况均不会出现,但是在服务器上部署就常抛出此异常统一的异常处理@ExceptionHandler(Exception.class) public void handleCustomException(Exception e, HttpServletResp...

2019-04-15 14:42:56 1304 1

原创 Mybatis Example的高级用法

近几个项目一直使用的mybatis来对数据库做查询,期间用到了很多高效简洁的查询方法,特此记录和分享。一. mapper接口中的函数及方法方法名功能int countByExample(UserExample example)按条件计数int deleteByPrimaryKey(Integer id)按主键删除int deleteByExample(U...

2019-04-12 17:33:22 16685 9

原创 基于OpenCV对图片清晰度、色偏和亮度的检测(java版)

由来:近期项目需要检测图片的亮度和色偏,但网上大多为用C实现的,没有java版本的,此篇为java版本对opencv的调用,谨以此献给CSDN的广大用户。一. 导入OpenCV所需依赖OpenCV运行环境下载(包含jar包和dll依赖库)在IDEA的项目模块下新建一个libs目录,将opencv-343.jar放进去,将opencv_java343.dll放到项目下。如图:注意:o...

2019-02-27 14:47:53 14377 25

原创 JS异步操作笔记整理

1. 单线程模型JavaScript只在一个线程上运行,同时只能执行一个任务,其他任务都必须在后面排队等待。虽然允许JS创建多个线程,但子线程完全受主线程控制,且不得操作 DOM,所以并不影响JS单线程的本质。2. 任务队列和事件循环2.1 任务队列JavaScript 运行时,除了一个正在运行的主线程,引擎还提供一个任务队列(task queue),里面是各种需要当前程序处理的异步任务。...

2019-02-12 15:48:13 179

xmanager6qypjb_downyi.com.zip

Xshell6 + Xftp + Xlpd 三合一工具类集合,过期后,卸载重装又可再次使用,亲测可用。

2019-09-27

redis百度云下载地址.txt

Redis Windows客户端,亲测好用,官网下载需要收费,GitHub也已经不提供免费下载地址了,本着极客的开源精神,现将此资源分享出来,供需要的朋友下载

2019-07-02

Java编程思想第四版(可复制内容的,和word文档类似)

此版本电子书是我在网上少有的可复制内容的Java编程思想,可复制的话,边看边复制到编辑器自己运行会带来完全不同的效果,当然你也可以完全自己敲,但那样的话,时间成本和效率就会大打折扣,好东西就需要共享

2019-04-20

OpenCV运行环境(包含jar包和dll依赖)

java项目中对opencv的调用所必须引入的jar包和相关dll依赖。此版本为343。亲测好用,对图片亮度和色偏的检测都是很准确的。

2019-02-27

ValidateCode 验证码

ValidateCode常用验证码工具类的封装,可设置大小,字体和干扰码

2017-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除