- 博客(180)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【JDK8】JDK8 新特性 - 新的时间和日期 API(LocalDate、LocalDateTime、Instant、Duration、Period、ZoneId)
JDK 8 由一个新增的特性就是引入了新的时间和日期 API,可以更方便的处理日期和时间。LocalDateLocalDate 类用来表示一个具体的日期,但不包含具体时间,可以使用 LocalDate 的静态方法 of() 来创建一个实例。LocalDate 也包含一些方法用来获取年份、月份、天、星期几等:LocalDate localDate = LocalDate.of(2020, 9, 15); // 初始化一个日期:2020-09-15int year = localDate.get
2020-09-15 23:43:17
1336
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【MyBatis-Plus】MyBaits-Plus 代码生成器快速构建 Spring Boot 项目
数据库脚本CREATE DATABASE /*!32312 IF NOT EXISTS*/`mp_generator` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `mp_generator`;CREATE TABLE `mp_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `username` varchar(50) DEFAULT NULL COMMENT '用户名',
2020-09-07 23:17:21
404
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【Jenkins】Jenkins + Docker + Docker Compose + Harbor 实现 Spring Boot 项目持续集成
环境安装安装 Docker参考 Linux 安装 Docker安装 Docker Compose参考 安装 Docker Compose安装 Jenkins参考 Docker Compose 安装 Jenkins安装 Harbor 镜像仓库参考 Harbor Docker 镜像仓库的安装以上安装完成后,需要在 Jenkins 服务器和部署服务器上配置 Harbor 的镜像仓库地址新增 Harbor 仓库编写 Dockerfile 和 Docker Compose在 Spring
2020-09-05 19:39:38
717
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【IDEA】IDEA 配置优化
修改字体settings -> Editor -> Fonts 推荐使用 Jetbrains 推出的字体 JetBrains Mono设置自动导包和删包settings -> Editor -> General -> Auto Import忽略大小写提示settings -> Editor -> General -> Code Completion好处就是小写的单词就能提示,例如 list设置多行显示标签settings -> Ed
2020-06-18 21:13:56
523
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【微服务架构 - 02 - Docker】06 Docker Compose 部署项目到容器
创建 docker-compose.ymlversion: '3'services: web: restart: always image: tomcat container_name: web ports: - 8080:8080 volumes: - /usr/local/docker/yuublog/ROOT/:/usr...
2019-01-25 00:20:43
131
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【微服务架构 - 01 - Linux】06 部署应用到生产环境
导入数据库连接远程数据库导入数据库Maven 项目打包打开项目的路径进入 cmd打包mvn clean package -Dmaven.test.skip=true由于可能存在上传文件的问题,所以不部署 war 包,直接部署文件夹,把文件夹添加压缩包上传到服务器将压缩包放到 tomcat/webapps/Root 目录下,unzip 解压启动 tomcat...
2019-01-15 17:16:56
717
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【Linux】安装 Ubuntu Server 16.04
下载地址百度网盘:https://pan.baidu.com/s/1aNwkTckPmAIZR2ypmvMrFw创建虚拟机创建一个新的虚拟机自定义创建硬件兼容性,什么版本的 VMware 就选什么选择稍后安装系统选择客户机操作系统,Linux Ubuntu 64位选择安装虚拟机的路径设置虚拟机处理器和内核(根据电脑性能设置)设置虚拟机内存网络选择使用 NAT...
2018-11-24 13:50:25
736
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【项目管理工具】SVN 项目版本管理工具
1. svn介绍1.1 项目管理中的版本控制问题解决代码冲突困难 容易引发bug 难于恢复至以前正确版本 无法进行权限控制 项目版本发布困难1.2 什么是版本控制 版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一致到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。1.3 svn是什么SVN是版本管理工具,在当前的开源项目里(J2...
2018-08-02 18:05:40
20201
6
原创 【Java-注解】Java 注解详解
什么是注解?注解是可以放在类、方法、参数上等位置的一种特殊标记:例如我们常见的 Controller 层代码就常见以下几种特殊标记(Annotation):@RestController@RequestMapping("user")public class UserController { @GetMapping("getUserById") public Result<?> getUserById(@RequestParam("userId") String
2021-09-15 23:00:05
263
原创 【计算机组成原理】计算机组成原理背景
计算机的发展史计算机发展的四个阶段计算机发展可大致分为四个阶段:电子管计算机 -> 晶体管计算机 -> 集成电路计算机 -> 超大规模集成电路电子管计算机集成度小,空间占用大功耗高,运行速度慢操作复杂,更换程序需要重新接线晶体管计算机集成度相对较高,空间占用相对小功耗相对较低,运行速度较快操作相对简单,交互更加方便集成电路计算机计算机变得更小功耗变得更低计算速度变得更快超大规模集成电路计算机一个芯片继承了上百万的晶体管
2020-09-12 20:56:49
693
原创 【Swagger2】Spring Boot 整合 Knife4j 接口文档
Knife4j 简介Knife4j 是 swagger-bootstrap-ui 的升级版,采用前后分离的模式,换为 Knife4j,为啥叫这名字,作者取名 knife4j 是希望她能像一把匕首一样小巧,轻量,并且功能强悍,更名也是希望把她做成一个为 Swagger 接口文档服务的通用性解决方案,不仅仅只是专注于前端。引入依赖在 pom.xml 中引入 Knife4j 的依赖<dependency> <groupId>com.github.xiaoymin</g
2020-09-12 14:32:24
979
1
原创 【uni-app】uni-app 封装 uni.request 携带请求头
在 uni-app 中使用 uni.request 发起网络请求,由于业务的需要,一些请求需要携带请求头访问,于是我对该请求方法进行了封装。新建 common/app.jsexport const apiBaseUrl = 'http://192.168.1.104:8091/sports-tms/'// 不需要登录的接口const noToken = [ 'sys/wxlogin'];const request = (method, methodType, data, callback,
2020-09-03 22:16:52
12560
3
原创 【uni-app】uni-app 小程序获取手机号登录
具体业务小程序使用手机号登录,需要绑定到当前业务系统。获取手机号时序图如下:实现前端 uni-app我对 uni.request 进行了封装,可能请求方式有些不同<template> <view class="container"> <view> <image class="logoImg" src="@/static/img/logo.jpg"></image> </view> <butto
2020-09-03 22:06:59
9613
2
原创 【uni-app】uni-app this 作用域的问题
问题在之前的 VUE 使用一个定义了的属性,一直用的是 this.xxx,而在 uni-app 中使用 this.xxx,却发现无法赋值的问题uni.login({ provider: 'weixin', success: function (loginRes) { this.code = loginRes.code }})为什么会出现这样的问题呢?是因为在 function 中的 this 指向的是 login 这个方法。解决既然是因为 this 作用域的问题,就要使 this 指
2020-09-02 12:01:09
2968
原创 【Docker】Docker 私有镜像仓库 Harbor 的安装
下载下载地址:Harbor releases page,我下载的版本是 v2.0.2 离线安装版本可以复制下载链接地址到迅雷上下载,直接下载比较慢上传到服务器安装解压tar -zxvf harbor-offline-installer-v2.0.2.tgz进入 harbor 目录修改配置文件cd harborcp harbor.yml.tmpl harbor.ymlvi harbor.yml# 第 5 行,修改主机名为自定义域名hostname: harbor.y
2020-08-31 11:57:06
395
原创 【Jenkins】使用 Docker Compose 安装 Jenkins
使用 Docker Compose 安装使用 Docker Compose 快速安装 Jenkins,docker-compose.ym 文件如下:version: '3.1'services: jenkins: restart: always image: jenkinsci/jenkins container_name: jenkins ports: # 发布端口 - 8080:8080 # 基于 JNLP 的 Jenkins
2020-08-27 15:02:51
356
原创 【Spring Cloud】Spring Cloud Feign 携带 Token
在 Spring Cloud 微服务架构体系中,通常使用 Feign 作为服务之间的通信组件,但是在某些场景下我们对某个服务做了权限拦截,例如 Shiro 或者 Spring Security,往往需要验证 token。使用 Feign 如何解决 token 的问题呢?可以先获取原 token,重新转发 token@Configurationpublic class FeignConfig implements RequestInterceptor { @Override publi
2020-08-20 10:31:57
648
原创 【Spring Cloud】Spring Cloud Gateway 解决跨域问题
什么是跨域一个域下的文档或脚本试图去请求另一个域下的资源对于跨域通常情况下我们说的是浏览器的一种同源策略的限制同源策略协议、端口、域名都相同就属于同源、如果有一个不相同则为不同源,就会出现跨域问题http -> https80 -> 81yuu.com -> yuu2.com例如,前端项目启动端口为 3000,后台接口项目端口为 8090,这就属于跨域,若不解决,则会出现以下错误Spring Cloud Gateway 解决跨域在配置文件中添加spring:
2020-08-20 09:34:18
3175
原创 【数据结构】使用 Java 实现栈
栈示意图先进后出使用 Java 实现栈public class MyStack { // 用一个数组作为栈的底层 private int[] elements; /** * 构造一个空的栈 */ public MyStack() { elements = new int[0]; } /** * 压栈 * * @param e */ public void pu
2020-06-19 18:05:29
586
原创 【数据结构】使用 Java 实现双向循环链表
双向循环链表Java 实现双向循环链表public class DoubleLoopNode { /** * 前一个节点 */ DoubleLoopNode pre = this; /** * 后一个节点 */ DoubleLoopNode next = this; /** * 数据 */ int data; /** * 构造方法 * * @para
2020-06-19 17:59:12
382
原创 【数据结构】Java 实现循环链表
循环链表循环链表定义单向循环链表就是单链表的另外一种表现形式,其结构特点是最后一个指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环,就像将一根铁链子首尾连接形成一个铁链环一样。与单链表的区别单链表只存储后一个节点,到了尾节点就结束了,这样就无法找到他的前驱节点了Java 实现循环链表public class LoopNode { /** * 数据 */ private int data; /** * 下一
2020-06-19 17:54:28
600
原创 【数据结构】使用 Java 实现单链表
链表链表定义n个节点离散分配,彼此通过指针相连,每个节点只有一个前驱节点,每个节点只有一个后续节点,首节点没有前驱节点,尾节点没有后续节点。链表优点插入删除快链表缺点存取速度慢Java 实现单链表public class MyNode { /** * 链表保存的数据 */ private int data; /** * 链表的下一个节点 */ private MyNode next; /**
2020-06-19 17:47:55
323
原创 【排序算法】- 基数排序
排序动图排序思路将数组按基数进行排序,个位,十位,百位…排序流程取数组中最大的数,并计算位数从最低位开始取每个位的数组成一个新的数组对新的数组重新按位排序,直到位数排完代码实现public static void radixSort(int[] arr) { // 找出最大的数 int max = Integer.MIN_VALUE; for (int i = 0; i < arr.length; i ++) { if (arr[i] &g
2020-06-19 17:38:38
155
原创 【排序算法】归并排序
排序动图排序思路将数组分为两个长度为 n/2 的子序列,将这两个子序列合并为一个有序的序列。排序流程创建一个临时数组,存放合并后的序列设定两个起始值,分别是两个排好序的序列初始位置比较两个起始值位置的值,小的放入临时数组,并移动到下一个位置重复第三步,直到某个序列排序剩下的另一段序列复制到数组尾部代码实现public class MergeSort { public static void main(String[] args) { int[] arr =
2020-06-19 15:51:48
127
原创 【排序算法】选择排序
排序动图排序思路每一轮找出最小的,放在起始位置。排序流程总共遍历几次?因为最后一个元素也可能不是最小的,所以要遍历 n 次每次遍历需要干什么?找出最小元素的位置,与开始位置交替元素代码实现public static void selectSort(int[] arr) { // 总共需要遍历 n 次,每个元素都需要遍历 for (int i = 0; i < arr.length; i++) { // 默认第 i 个元素最小
2020-06-19 12:25:35
154
原创 【排序算法】希尔排序
排序动图排序思路将数组进行增量分组,对每个分组进行插入排序,然后依次缩减增量再排序,直到增量为1,进行最后依次插入排序。排序流程按增量分组,增量:d = arr.length / 2,加入 arr.length 为 10,则分组为:5 2 1遍历所有元素,按分组进行插入排序实现代码public static void shellSort(int[] arr) { // 遍历所有的分组情况 for (int i = arr.length / 2; i > 0; i /
2020-06-19 11:59:19
199
原创 【排序算法】插入排序
排序动图排序思路将一个元素插入到前面已经排好序的队列中,保证插入元素之后新队列依旧是有序的。排序流程第一次循环,从第二个数开始处理。当第二个数大于第一个数时,将第二个数放在第一个数后面一个位置,否则,将第二个数放在第一个数前面。第二次循环,处理第三个数,此时前面两个数已经是一个有序的数据了,首先比较第三个数和第二个数,当第三个数大于第二个数时,结束此次循环, 否则,将第二个数放在第三个数的位置,再比较第三个数和第一个数,如果小于,则将第一个数再放第二个位置,结束循环,将第三个数放在第一个位置。
2020-06-19 09:51:59
124
原创 【排序算法】快速排序
排序动图排序思路设定一个初始值,和两个位置,将初始值与这两个位置比较,大的放右边,小的放左边,这样经过一次循环遍历,就能把初始值放中间,比初始值小的在左边,比初始值大的在右边,再通过递归排序左边和右边的就可以排好序了。排序流程设置两个初始的变量low、high,初始值为:low = 0,j = N - 1;以第一个数组元素作为比较数据,赋值给 startVal,即 startVal = arr[0]从 hight 开始向前比较,high–,找到一个比 startVal 小的,将 arr[lo
2020-06-19 08:59:55
230
原创 【排序算法】冒泡排序
排序 Gif 图排序流程依次比较向相邻两个数,如果后面的比前面大,则交换位置。总共比较几轮?总共比较 n-1 轮,因为最后一个数字没有后一个数。每一轮比较几次?第一轮需要比较 n-1 次。第二轮需要比较 n-2 次,因为最后一个数已经是最大的了,不需要再重新比较。由此可得出,每轮比较 n - 已经比较了几轮 - 1。初始数组:int[] arr = new int[]{3, 2, 5, 1, 6, 8, 9, 4, 7}第一轮第一次:2 3 5 1 6 8 9 4 7第一轮第二
2020-06-18 21:53:02
147
原创 【Nginx】Nginx 工作原理
Nginx 架构以及工作流程图Nginx 在是以守护进程的形式在后台运行,采用 多线程+异步非阻塞IO事件模型 来处理各种请求。多线程模型包括一个 master 进程,多个 worker 进程,一般 worker 进程个数是根据服务器 CPU 核数来决定的。master 进程负责管理 Nginx 本身和其他 worker 进程。Master 进程的主要职责读取并验证配置信息(nginx.conf)创建,绑定,关闭套接字(IP + PORT)启动,终止,维护 worker 进程的个数Work
2020-06-14 18:09:08
816
原创 【Nginx】Nginx-keepalived + Nginx 实现高可用集群
Keepalived + Nginx 高可用集群 (主从模式)集群架构图搭建所需环境HOSTNAMEIP说明LB-01192.168.145.135Keepalived 主服务器(Nginx 主负载均衡器)LB-02192.168.145.136Keepalived 备服务器(Nginx 备负载均衡器)WEB-01192.168.145.137Web 服务器节点1WEB-02192.168.145.138Web 服务器节点2安装 Ngi
2020-06-14 17:10:23
170
原创 【Nginx】Nginx 负载均衡的 5 种策略
轮询(默认)每个请求按时间顺序逐一分配到不同的服务器,如果服务器 down 掉,能自动剔除。upstream myserver { server 192.168.145.136:8080; server 192.168.145.136:8081;}weight指定轮询权重,weight 值越高访问机率越大,一般用于服务器性能不平衡的情况。upstream myserver { server 192.168.145.136 weight=8; server 19
2020-06-14 10:16:42
230
原创 【Nginx】Nginx 实现反向代理
反向代理反向代理服务器存在于服务器端,通过缓冲经常被请求的页面来缓解服务器的压力,将客户端的请求转发给内部的目标服务器;并将从服务器上得到的结果返回给客户端,此时代理服务器与目标主机一起对面表现为一个服务端。反向代理的主要应用场景防止恶意攻击,使用反向代理可以防止外网对内网服务器的恶意攻击可以缓存以减少服务器的压力安全访问控制负载均衡,将用户请求转发给多个服务器配置实例一需求在 windows 中请求 www.yuu.com 域名,Nginx 对域名进行代理,转发到内部 tomcat
2020-06-14 09:53:08
241
原创 【Nginx】Nginx 实现负载均衡
负载均衡负载均衡,英文名称为 Load Balance,其意思就是分摊到多个操作单元上进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其他关键任务服务器,从而共同完成工作任务。Nginx 实现负载均衡nginx 作为负载均衡服务器,用户请求先到达 nginx,再由 nginx 根据负载均衡配置将请求转发至 tomcat 服务器nginx 负载均衡服务器:192.168.145.136tomcat1 服务器:192.168.145.136:8080tomcat2 服务器:19
2020-06-14 09:51:21
270
原创 【Nginx】Nginx 常用命令
Nginx 常用命令不同版本的 Nginx,命令位置不同,使用 whereis nginx 查看 nginx 在哪> whereis nginxnginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz/usr/sbin/nginx 就是 nginx 执行文件的目录查看 nginx 的
2020-06-13 17:33:50
183
原创 【Nginx】Nginx 配置文件
Nginx 配置文件Nginx 配置文件一般存放在 usr/local/nginx/conf 目录下,nginx.conf 就是配置文件#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_
2020-06-13 12:57:01
201
原创 【Nginx】Nginx 实现虚拟主机
基于端口的虚拟主机需求Nginx 对外提供 80 和 8080 两个端口监听服务请求 80 端口则请求 html80 目录下的 html请求 8080 端口则请求 html8080 目录下的 html创建目录及文件在 /usr/share/nginx/wwwroot 目录下创建 html80 和 html8080 两个目录,并分别创建两个 index.html 文件配置虚拟主机worker_processes 1;events { worker_connections 1
2020-06-12 20:21:22
259
原创 【Nginx】Linux 安装 Nginx
使用 yum 来安装 Nginx安装 EPEL,epel 仓库中有 Nginx 的安装包yum install epel-release安装 Nginxyum install nginx设置 Nginx 开机启动systemctl enable nginx启动 Nginxsystemctl start nginx查看 Nginx 运行状态system status nginx...
2020-06-12 19:44:04
180
原创 【Linux】CentOS 7 安装与基本配置
本文使用 VMware 安装 CentOS 7,省略了使用 VMware 新建 CentOS 7 虚拟机的过程,若需要可以阅读另一篇文章:安装 Ubuntu Server安装安装 CentOS 7选择语言(建议选择英文)设置安装位置,默认即可设置 Root 账户密码如果密码过于简单,需要点两次 Done等待安装完成重启~配置激活网卡查看 ip 地址> ip addr发现只有一个本地回环地址,ens33 网卡需要手动激活激
2020-06-12 16:17:48
239
原创 【Linux】CentOS 7 安装 MySQL
移除 mariadb 数据库CentOS 7 默认安装 mariadb 数据库,需要先移除> yum remove mariadb-libs.x86_64下载 MySQL 源> wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装 yum 源> rpm -ivh mysql57-community-release-el7-11.noarch.rpm安装 MySQL>
2020-06-12 10:52:40
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人