自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子叶的奔跑

或大或小,这是一个品牌。对别人的影响或许不大,对你而言却很重要。

  • 博客(83)
  • 资源 (7)
  • 收藏
  • 关注

原创 【数据安全】二、使用工具类简化加解密过程

使用工具类简化加解密过程

2020-04-16 00:04:35 1010

原创 【数据安全】一、数字签名、数字证书、数据加密

本文介绍,在数据安全相关领域,常见的问题场景,以及相应的处理策略。涉及到三类算法:哈希算法、对称加密算法、非对称加密算法;以及两个场景:数字签名(数字证书也是数字签名一种处理方式)、内容加密。

2020-04-14 12:47:34 1805

原创 【Spring Cloud Gateway专题】三、自定义gatewayfilter实现AddRequestHeader

1、前言实际项目中存在这样一个场景,使用Spring Cloud Gateway建设一个网关,该网关负责代理所有业务系统的对外访问请求。若外部服务需要授权(下文中的passID和passToken)才能访问,那么该网关可以统一处理该问题。以下引出添加AddRequestHeader的几种方式,以及存在的限制。2、使用yaml配置方式采用yaml方式配置 ,访问csdn网站,X-Reques...

2020-04-04 14:52:38 2497 1

原创 centos7下 nginx的下载、安装、启停命令以及基本配置介绍

引言:nginx可以用作web服务器,也可以用作反向代理服务器,本文介绍nginx的下载,安装,配置及启停等基本命令1、nginx下载可以直接在nginx的官网地址:https://nginx.org/en/download.html下载稳定版本(stable version)或者直接使用centos的wget命令# cd /usr/local# wget http://nginx...

2020-03-05 23:39:34 607

原创 【BeanValidation】一、springboot项目以注解方式实现后端数据验证(javax.validation.api与hibernate-validator)

1 引言1.1 场景最近的这个项目是互联网项目,网络用户需要填写表单信息保存提交。页面输入信息需要进行数据格式校验,从而避免无效数据被保存或者提交。这些检查工作包括必填项检查、数值检查、长度检查、身份证号码、手机号码检查等工作。如果将这些字段校验和业务逻辑混合一起写,则会干扰原有逻辑,而且不容易维护。下面即将要介绍的是后端api对表单数据的验证处理技术。1.2 名词或技术介绍(1) JSR...

2020-02-28 16:56:59 6835 2

原创 centos7下启动springboot项目启动脚本(shell脚本)

前言:打包好的springboot项目,可以使用java -jar xxx.jar的方式启动。当出现多个springboot项目需要启动的时候,可以使用脚本启动的方式。这在springcloud项目的开发测试阶段尤为有用。以下展示启动脚本示例,过程中遇到的问题,以及相关的解决办法。

2020-02-22 13:24:15 2702

原创 SpringBoot 启动流程(四):编译SpringFramework源码

本文基于以下版本验证:项目版本下载地址SpringBoot2.0.4releasehttps://github.com/spring-projects/spring-bootSpringFramework5.0.8.releasehttps://github.com/spring-projects/spring-framework为什么要编译源码?Spring的源码,注释非常清晰,能够帮助读者理解框架中接口和类的作用,对理解Spring框架非常重要。由于Spri

2020-10-23 17:38:28 705 1

原创 gitee Could not read from remote repository

一、错误产生本地有一套项目代码,想上传到码云进行版本管理,操作步骤如下:上图中repository name 应该为“spring-framework-5.0.8” ,创建后出错,错误信息:12:11 Can’t finish Gitee sharing processSuccessfully created project ‘spring-framework-5.0.8’ on Gitee, but initial push failed:Could not read from remot

2020-10-22 14:34:34 2565

原创 SpringBoot 启动流程(三):Bean的生命周期

文章目录一、Bean的生命周期原理二、代码验证实现2.1 定义测试用的实体类2.2 以java注解的方式注入Person2.3 定义BeanPostProcessor的实现类2.4 启动类2.5 测试结果三 源码分析本文基于以下版本验证:项目版本下载地址SpringBoot2.0.4releasehttps://github.com/spring-projects/spring-bootSpringFramework5.0.8.releasehttps://githu

2020-10-21 18:55:51 2170

原创 SpringBoot 启动流程(二):Spring IOC容器源码分析

目录一、获取并启动监听器二、构造应用上下文环境2.1ConfigurableEnvironment environment = getOrCreateEnvironment();2.2 configureEnvironment(environment, applicationArguments.getSourceArgs());2.3 listeners.environmentPrepared(environment);三、初始化应用上下文四、刷新应用上下文前的准备阶段五、刷新应用上下文第一篇,讲解了S

2020-10-01 19:10:55 647

原创 SpringBoot 启动流程(一):SpringApplication类的构造函数

目录一、引言二、SpringApplication初始化过程1、推断应用类型WebApplicationType2、加载应用上下文初始化器ApplicationContextInitializer3、加载应用监听器ApplicationListener三、总结一、引言SpringBoot工程,让工程应用开发更加方便,屏蔽了工程初始化的细节过程。理解SpringBoot项目的初始化过程,能够让读者更加深入的理解Spring框架加载的原理,实现在SpringBoot工程初始化的过程中,进行一些自定义的操作。

2020-09-30 15:36:41 994

转载 mysql事务,select for update,及数据的一致性处理

mysql事务,select for update,及数据的一致性处理在MySQL的InnoDB中,预设的Tansaction isolation level 为REPEATABLE READ(可重读)在SELECT 的读取锁定主要分为两种方式:SELECT … LOCK IN SHARE MODESELECT … FOR UPDATE这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行。而主要的不同在于LOC

2020-09-11 15:18:24 658

转载 MySQL乐观锁与悲观锁

悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则会被block。乐观锁乐观锁(Optimistic Lock),顾名思义,就是很乐观,每次去拿数据的时候都认为别人

2020-09-11 15:06:34 238 1

原创 MySQL分区和分表的概念

文章目录一、概念二、分区1.分区的类型:2.分区管理3.分区应该注意的事项:三、分表1.垂直分表2.水平分表(1)按时间结构(2)按版块结构(3)按哈希结构一、概念1.为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。2.什么是分表?分表是将一个大

2020-09-11 12:15:29 366

原创 Oracle基础知识及查询优化

文章目录Oracle基础知识总结一、基础知识(DML)1、Select语句2、Order By 、Group By子句3、Distinct子句4、Where子句5、And子句6、Or子句7、 Fetch子句OFFSET子句FETCH子句8、IN子句9、Between子句10、Like子句通配符2、Insert语句3、Update语句4、Delete语句二、DDL语句1、数据库创建2、数据库删除3、创建表4、修改表5、删除表6、截断表(彻底释放表占用空间)7、闪回8、约束9、视图三、索引1、建设原则2、创建索

2020-09-11 09:03:55 950

原创 MySQL设计规范及性能优化

文章目录一、数据库命令规范二、数据库基本设计规范三、数据库字段设计规范四、索引设计规范常见索引列建议如何选择索引列的顺序索引SET规范五、数据库SQL开发规范六、数据库操作行为规范超100万行的批量更新操作,要分批多次进行操作对于大表使用pt-online-schema-change修改表结构。禁止为程序使用的账号赋予super权限对于程序连接数据库账号,遵循权限最小原则一、数据库命令规范所有数据库对象名称必须使用小写字母并用下划线分割。所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含

2020-09-10 21:50:33 446

原创 Linux打包与压缩命令

打包与压缩的概念及区别在讲解具体的归档命令和压缩命令之前,先来了解一下归档和压缩所各自代表的含义。归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。和归档文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。

2020-09-09 20:15:56 471

原创 Linux 开关机命令

shutdown 命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。命令语法参数说明shutdownshutdown [-t seconds] [-rkhncfF] time [message]–-t seconds设定在几秒钟之后进行关机程序–-k并不会真的关机,只是将警告讯息传送给所有只用者–-r关机后重新开机(重启),示例: 立刻重启shutdown -r now–-h关机

2020-09-09 17:48:32 330

原创 Linux 系统管理命令

命令说明示例stat显示指定文件的相关信息,比ls命令显示内容更多stat 1.txt 显示1.txt文件的详细信息who显示在线登录用户hostname显示主机名称uname显示系统信息top显示当前系统中耗费资源最多的进程 相当于windows中的任务管理器ps显示瞬间的进程状态ps aux显示当前系统进程的详细信息(也可以使用ps -ef),“ps aux 竖线 grep geo-” (markdown在表格中打不出竖线) ...

2020-09-09 17:32:37 176

原创 Linux操作目录和文件的常用命令

命令说明参数说明示例ll管理员权限下,查看下级所有文件和目录列表的详细信息ls显示文件和目录列表 ls [-alrtAFR] [name…]-l 列出文件详细信息,-a 包含隐藏文件ls 查看下级目录和文件名称 ; ls -al 查看下级目录和文件的详细信息 ; ls -al test 查看test文件夹的下级目录及文件的详细信息。mkdir创建目录 mkdir [-p] dirName-p 父目录不存在情况下先生成父目录mkdir -p ptest...

2020-09-09 16:02:18 281

原创 Linux的目录挂载详解

挂载的基本概念前面讲过,Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。纠正一个误

2020-09-08 18:54:50 19276 3

原创 Linux的文件目录结构

学习 Linux,不仅限于学习各种命令,了解整个 Linux 文件系统的目录结构以及各个目录的功能同样至关重要。使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录(/)下包含很多的子目录(称为一级目录),例如 bin、boot、dev 等。同时,各一级目录下还含有很多子目录(称为二级目录),比如 /bin/bash、/bin/ed 等。Linux 文件系统目录总体呈现树形结构,/ 根目录就相当于树根。由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利

2020-09-08 18:33:26 388

转载 dependencyManagement与dependencies区别

dependencyManagement与dependencies区别  最近在阅读maven项目代码时,dependencyManagement与dependencies之间的区别不是很了解,现通过项目实例进行总结:项目epps-demob-pom下有一个模块是epps-demob-war。一、dependencyManagement应用场景  为了项目的正确运行,必须让所有的子模块使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果。在我们项目顶

2020-07-16 10:27:23 10043 1

转载 Spring Boot 日志集成 Logging 入门

摘要: 原创出处 http://www.iocoder.cn/Spring-Boot/Logging/ 「芋道源码」欢迎转载,保留摘要,谢谢!1. 概述 2. 快速入门 3. 动态修改日志级别 4. 调试模式 5. 日志分组 6. 不同环境下的日志配置 7. Logback 扩展 8. 集成 Log4j2 9. 访问日志 666. 彩蛋本文在提供完整代码示例,可见https://github.com/YunaiV/SpringBoot-Labs的lab-37目录。原创不...

2020-07-15 21:25:37 1034

原创 Mybatis出现异常java.lang.NullPointerException的解决办法

在使用Mybatis过程中,经常会遇到java.lang.NullPointerException的错误。错误效果如下:2020-07-10 12:03:31.038 DEBUG 12640 --- [ main] org.mybatis.spring.SqlSessionUtils : Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1e2db

2020-07-10 12:23:18 39456 1

转载 Spring配置中的“classpath:“与“classpath*:“的区别

概念解释及使用场景:classpath是指WEB-INF文件夹下的classes目录。通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下:<!--系统自动加载文件--><!--这里使用的是classpath*:的形式--><context-param> <param-name>contextConfigLocation</param-name> <param-va.

2020-07-08 21:09:35 1004

原创 @RestControllerAdvice @ControllerAdvice注解无效 通用异常处理

简单记录下,今天打算写一个公共异常处理切面,主要是将所有抛出的异常拦截,然后返回给前端的时候,统一是错误码,错误原因等。防止直接在前端抛出错误。@RestControllerAdvice 或者 @ControllerAdvice 可以直接作为错误处理的切面对待。但是使用过程中发现这两个注解无效,原因是我将GlobalExceptionHandler定义在另一个包里面,@SpringBootApplication无法自动加载到该注解(springboot启动类的默认扫描路径是该类所在的包下面的所有jav.

2020-07-07 22:36:23 14033 3

转载 Error creating bean with name ‘tomcatServletWebServerFactory‘ defined in class path resource

启动报错:Error creating bean with name ‘tomcatServletWebServerFactory’ defined in class path resource。springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.beans.factory.BeanCreationException:

2020-07-04 16:14:58 10575 2

原创 Nginx 413 Request Entity Too Large,文件上传过程中的问题

在上传时nginx返回了413错误,查看log文件,显示的错误信息是:”413 Request Entity Too Large”。以下介绍处理办法。1 处理方式如下1.打开nginx配置文件 nginx.conf, 路径一般是:/etc/nginx/nginx.conf,或者/usr/local/nginx。2.在http{}段中加入 client_max_body_size 20m; 20m为允许最大上传的大小。(设置超过20m可能无效)3.同时,还需要设置client_body_buff.

2020-07-02 15:21:50 625

转载 【单点登录sso】一、单点登录原理与简单实现

(2017-09-22更新)GitHub:https://github.com/sheefee/simple-sso一、单系统登录机制1、http无状态协议  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器

2020-06-28 23:29:42 290

原创 lambda expression中的值传递以及匹配返回

1、lambda表达式中的值传递(1) Lambda与匿名内部类在访问外部变量时,都不允许有修改变量的倾向,即若:final double a = 3.141592;double b = 3.141592; DoubleUnaryOperator anotherDoubleUnaryOperator = x -> { a = 2; // ERROR b = 3; // ERROR return 0.0; };则报错:Cannot assign a va

2020-05-21 16:04:20 999

原创 【文件存储FastDFS】1、安装指导

1、前言配置环境以及依赖:分项具体要求系统要求centos7软件版本fastdfs-5.12(软件主体),libfastcommon-1.0.40(依赖包)软件地址https://github.com/happyfish100/fastdfs/releases2、安装gcc–编译时需要FastDFS是C语言开发,安装FastDFS需要先将官网下载的...

2020-05-08 17:17:37 345

原创 【git】github如何把新的commits更新到自己的fork上

1 场景:在github上fork了原项目,原项目发生了更新,这时自己在本地仓库该如何更新到最新代码?有两种方法可以实现:github网站操作更新、git命令。例如,我的源码库为muziye2013/SpringBoot-Labs,原作者的源码库为YunaiV/SpringBoot-Labs,下面记录操作步骤。2 github网站操作(1) 登录自己的github账号,在fork的项目内点击...

2020-04-22 15:07:13 523

原创 【BeanValidation】二、springboot项目实现分组数据验证

1 前言在进行数据验证的过程中,我们可能会遇到这样的情况:由于数据库中,存在着历史数据,历史数据并不一定遵循了我们之前添加的数据验证的规范。这时,我们需要将新增和修改分为两种不同的情况来处理。又或者,对于同一类数据(这里指数据表相同),但是要分为不同的类型处理比如存在这一个员工表,A类员工的部分信息是必须要检查的,B类员工的部分信息是必须要检查的。员工表设计的是一个冗余的表结构。这时...

2020-04-21 21:22:46 828

原创 IDEA Push代码到 Github报错:AggregateException encountered

IDEA Push代码到 Github报错:AggregateException encountered

2020-04-19 22:18:31 1047

原创 【文件处理】java中文件的相对路径与绝对路径

1. 前言下面的corejava项目下,labs-v2ch02模块下,有4个文件,1.properties、2.properties、3.properties、4.properties。当我们需要使用这4个文件的时候,怎样创建文件对象呢?2. 基本知识(1) 不同的操作系统,文件的分隔符不同:Linux下:”/”Window下:”\”Java中通用表示方法:System.getP...

2020-04-18 19:54:24 1524

原创 Intellij Idea中如何给main方法附带参数(使用javac编译时报找不到符号)

1. 在Intellij idea中添加main方法的参数①点击Run下的Edit Configurations②配置Configuration页中的Program arguments选项,就可以在idea中传入参数,参数之间用空格隔开。如下图所示:2. 直接使用javac和java命令(1) 我们也可以直接在终端工具中使用javac 和java命令,如下①先编译: javac T...

2020-04-14 16:21:12 1522

转载 【数据安全】一、通俗理解数字签名,数字证书和https

通俗理解数字签名,数字证书和https前言最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应。签章有法律效应必须满足两个条件:能够证明签名,盖章者是谁,无法抵赖 PDF合同在签章后不能被更改在纸质合同中,由于签名字迹的不可复制性,盖章的唯一性以及纸质合同对涂改的防范措施(比如金额用大写)可以保证上述两点,从而具备法律效应,那...

2020-04-14 12:11:53 702

转载 【数据安全】一、数字签名是什么?

数字签名是什么?作者:阮一峰日期:2011年8月 9日今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。文中涉及的密...

2020-04-14 12:04:14 509

原创 【Spring Cloud Gateway专题】四、Spring Cloud Gateway中RequestBody只能获取一次的问题解决方案

1、前言在网关应用中,如果我想要记录所有请求的参数,然后将请求流转到下游,就会遇到读取RequestBody的问题。无论在Spring5的webflux编程或者普通web编程中,只能从request中获取body一次,后面无法再获取,这个问题怎么解决呢?网上博客有多种处理办法,对不同的spring cloud gateway版本不一定有用。本文着重说明下版本环境:spring cloud g...

2020-04-04 23:39:07 3312 2

xujg_report_template.rtp

powerdesigner工具中,将PDM设计模型导出为word结构的自定义模板。该模板删除了标准模板中大量无用的描述,结构简单实用。

2019-12-24

Step by Step Microsoft SharePoint 2013

适合初学,还是不错滴,大家可以看看.纸质版的太贵,PDF扫描版,很清晰,方便

2015-01-17

Pro SharePoint 2013 Business Intelligence Solutions

好东西啊,讲解的非常好,现在这本书的电子版价格60,当当网上需要好几百块呢,我是穷孩子,买个平板看PDF吧

2015-01-17

pro_sharepoint_2013_administration_2nd_edition.pdf

好东西啊,纸质的太贵了,哥买不起,下个电子版的吧,用平板看,效果还真不错。谁看谁知道,呵呵!

2014-06-05

SharePoint 2010 Development with Visual Studio 2010.pdf

好东西啊,讲解的非常好,现在这本书的电子版价格60,当当网上需要好几百块呢,我是穷孩子,买个平板看PDF吧

2014-06-05

项目管理知识体系指南 第五版 英文版.pdf

项目管理知识体系指南 第五版 英文版,共616页。完全版,非常清晰,适合项目管理专业人士阅读。

2014-06-05

空空如也

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

TA关注的人

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