一个没有技术只会增删改查的后端
Drone 部署 Hexo blog

环境

目前的环境是hexo+docker+drone

Drone CI/CD 安装

package.json明细

1
2
3
4
5
6
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"server": "hexo server"
},
Docker 安装

卸载旧版docker

1
sudo apt-get remove docker docker-engine docker.io containerd runc

设置存储库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo apt-get update

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装docker

Drone CI/CD 安装

安装 Drone(github,其他参考官网)

  1. 创建OAuth程序,并通过keySecret授权访问github资源。

请参考下面的格式填写Authorization callback URL

数据库中char、varchar、nchar、nvarchar的区别

我们在进行数据库的设计的时候,很多情况下表中的字段都是用的是字符串类型的数据,其中就有四种选择char,varchar,nchar,nvarchar,我们该如何选择?

四种类型的详细说明

  1. char:固定长度,非Unicode字符数据(对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节)。

    用来存储定长数据,长度为n个字节,n的取值范围为1至8,000,存储大小是n个字节。

  2. varchar:可变长度,非Unicode字符数据(对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节)。

    用来存储变长数据,长度为n的字节,n的取值范围为1至8,000,max指示最大存储大小是2^31-1个字节,存储大小是输入数据的实际长度加2个字节,所输入数据的长度可以为0个字符。

  3. nchar:固定长度,Unicode字符数据。

    n个字符,n值必须在1到4,000之间(含)。存储大小为两倍n字节。

  4. nvarchar:可变长度,Unicode字符数据。

    n个字符,n值在1到4,000之间(含)。max指示最大存储大小为2^31-1字节,存储大小是所输入字符个数的两倍+2个字节,所输入数据的长度可以为0个字符。

Unicode或非Unicode的区别

  1. 非Unicode:charvarchar

  2. Unicode:ncharnvarchar

    数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储,如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。

    Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。

通用解决LocalDateTime转为字符串后中间含“T”

直接上代码,亲测可用。

@Transactional注解的失效的几种场景

@Transactional 注解相信大家并不陌生,平时Spring开发中很常用的一个注解,它能保证方法内多个数据库操作的事务性和原子性。在使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。

首先呢,先简单介绍下Spring的事务:

1、事务

Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。

1)编程式事务

让VirtualBox虚拟机实现开机自动后台运行

目的: 开机后自动后台运行虚拟机,只有进程,不显示GUI界面.

软件选择: 开源的virtualbox.

编写脚本

  1. 启动脚本:start.bat
1
2
3
4
5
@echo off
rem 进入VirtualBox安装目录
cd /d "C:\Program Files\Oracle\VirtualBox"
rem 启动名为ubuntu的虚拟机
VBoxManage.exe startvm "ubuntu" -type headless
HTTP Header控制缓存

我们经常通过缓存技术来加快网站的访问速度,从而提升用户体验。HTTP协议中也规定了一些和缓存相关的Header,来允许浏览器或共享高速缓存缓存资源。这些Header包括:

  • Last-Modified 和 If-Modified-Since

  • ETag 和 If-None-Match

  • Expires

  • Cache-Control

以上Header又可以分成两种类型:

  • 协商缓存:浏览器发送验证到服务器,由服务器决定是否从缓存中读取,如 1 和 2 。

  • 强缓存:浏览器验证缓存的有效性,然后决定是否从缓存中读取数据,如 3 和 4 。

本文将会分别介绍这四种配置的作用以及可能产生的影响。

SpringBoot使用Nacos配置中心

本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心。

Nacos简介

Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计。它可以帮助您轻松构建云本机应用程序和微服务平台。

Nacos基本上支持现在所有类型的服务,例如,Dubbo / gRPC服务,Spring Cloud RESTFul服务或Kubernetes服务。

尤其是使用Eureka注册中心的,并且担心Eureka闭源的开发者们,可以将注册中心修改为Nacos,本文主要介绍Nacos配置中心的使用。
nacos官网

解决vue打包css文件中背景图片的路径问题

vue-cli写完的静态页面我们在node环境中引入没有问题,但是打包后放在Apache环境下,路径却有问题了.

如一个简单css语句

1
.welcome { width: 420px; height: 235px; background: url(../img/welcome.jpg) 0 0 no-repeat;

但是打包后路径成了却出现404访问不到的问题。

解决的办法很简单