自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 next.js app目录 i18n国际化简单实现

nextjs-app目录 i18n国际化多语言 简单实现

2024-04-21 15:38:08 916

原创 linux安装node并在jenkins上配置

linux安装node并在jenkins上配置

2022-06-16 22:26:22 463 1

原创 linux安装jenkins

在linux上安装jenkins

2022-06-08 22:11:07 276

原创 springboot定时器时区问题

有道是,生命不息,困难不止。程序员只要活着,就会有bug。刚发现了个问题,热乎的,我也不知道是不是springboot的bug,还是我使用姿势不对,它的定时器里时区有问题,骚的是,只有服务器上会这样。打印结果如图:我用的是最基础的new Date()啊,还有问题,真的麻了。我说最近怎么定时器的任务没触发。看了下服务器的时间没问题。再看了下,通过接口新增的数据,时区也没问题。我人傻了,打印一下定时器的时间,就发现了问题。时区有问题,就设置时区呗,上网搜了下:来源:如何设置java.u

2022-02-21 23:46:36 683 4

原创 小程序上滑下滑效果

首先上视频 ,csdn上传视频还要上传到腾讯视频或者B站才能发,太捞了,视频之前录好了,弄成gif图将就看吧。就像图里展示的那样,我要的是这种效果,滑动一下就进入下个页面,而不是划一下就动一点点。H5营销页面倒是很经常能看到这种效果。本人前端菜鸡,百度了好久,都是什么touchstart和touchend,还有轮播图的实现效果。但是我之前用过touchstart和touchend,感觉其实体验很不好。在我的手机上能体现出明细的卡顿效果,有的时候还不生效,可能是在提醒我可以换手机了。轮播图的

2022-01-24 20:53:29 4330 3

原创 小程序轮播 滑动的时候另一个轮播图也跟着动

好久没碰前端了,写个轮播都废了我这么大功夫。最近闲着没事写一写小程序,有个要实现的功能是这样的:如图,上面的色块是个轮播,下面的也是轮播。滑动上面的轮播,下面的也跟着动,滑动下面的,上面也跟着动。什么,你说哪个傻子会做这种功能?我啊。其实做出来的效果还挺不错的,就看你往轮播里面放什么内容。我做出来的效果是下面这样的:当然你也可以自己体验一下效果:还挺不错的吧,快夸夸我。但是真的好久没写前端了呀,这点功能都让我写了好久。还本来就菜。话不多说,上点正菜吧。思路及实现方式

2021-12-14 21:46:44 3249 8

原创 windows安装docker

还是一点废话不想看的同学可以跳过啊,往下拉就能看到正文了。换了台电脑,所有开发环境都要重新安装。之前和一个同事聊过,他说他把很多东西都装docker上了,之后换电脑的时候有个文件带过去就可以了。具体怎么换呢,我也不知道,以我的性格肯定是遇到事了才会去了解,但是我现在就想着试试docker。我也是第一次这样尝试,因此有个笔记的话下次还遇到会好很多,也希望能帮到同样情况的同学。检查你的电脑是否适合安装docker菜鸟教程是这么说的,那么除了家庭版以外的所有win10都没问题了耶。万岁!可是我

2021-11-19 23:41:22 2061

原创 windows10安装并配置jdk8

一点废话,着急的朋友可以往下拉都2021年了,好像写这个要给人笑哈哈哈哈哈。最近电脑突然坏了,换了台电脑,吃饭的家伙还是要安装回来的。你问我为什么不装17?因为我讨厌11的var。我也不知道为什么,就是讨厌。我就是犟!读书的时候配个jdk配了半天。真的半天那种,我日,然后那个时候就记了笔记。现在已经习惯不记笔记在本子上了,而且搬家这么多次,我也不知道现在的笔记还能带着身上多久,就想着写篇文章,于是有了这篇文章。我觉得就是jdk100来了,也得按这个配吧?没了解过,说错了别打我。正

2021-11-15 21:41:00 1722

原创 使用docker部署nginx并配置https

我只有一台服务器,但我想在这台服务器上运行多个项目,怎么办?总不能靠加端口区分吧?百度和Google是个好东西,于是我找到了答案,使用nginx。通过nginx,我可以给我的一台服务器配置两个域名,然后通过不同的域名访问我的两个项目。实现方式大概流程是这么玩的,你在服务器配置好nginx,让nginx监听80(http端口)和443(https端口),然后在nginx配置文件写明转发到哪里。比如我有一个博客系统,还有一个邮件系统。为了区分开,我给了这两个项目分别两个域名:blog.tandk.

2021-10-23 22:39:08 2616 2

原创 腾讯云配置多个域名前缀

首先确保你有一台腾讯云服务器和一个能正常使用的域名。然后想做的是,比如你有一个域名叫a.com,你想配置一个叫api.a.com的域名,再配置一个mail.a.com,那么恭喜你,本文就是解决这个问题的,你可以继续看下去。不仅不要钱,还特别简单。首先打开腾讯云的控制台,点击进入域名管理:点击解析:*代表通配,你这么配,就是api.a.com也可以访问,mail.a.com也可以访问了。如果你觉得还不够,想配出api.项目名.a.com,也很简单,就像我上面第一行那么配置就行了。配好了之后,

2021-10-13 22:30:05 2409 1

原创 断开ssh后,docker构建的jenkins也会随之关闭

官方的教程有点坑啊,按着官方的教程使用docker构建好jenkins之后,每次断开ssh连接,jenkins都会自动关闭。教程启动jenkins的命令如下:docker run \ --rm \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME":/home \ jenkinsci/blue

2021-10-07 21:15:26 504

原创 毕设利器,教你从零搭建一个有规范的spring boot项目【六】——接口文档和RESTful API

接上篇《毕设利器,教你从零搭建一个有规范的spring boot项目【五】——用户身份信息验证》接口文档接口文档大部分时候是写给前端同学看的,需要你写明这个接口是干嘛的、传什么参数、返回什么数据。不然前后端分离的项目里,如果不是自己一个人做,前端同学就会一个一个接口地拿过来问你,问到你崩溃。前阵子接手了公司的一个项目,才发现接口文档原来也是给后面接手项目的后端同学看的。你想想,刚接手一个项目,什么都没跟你说,就要你维护这个项目,你????的,没有接口文档,都不能大致了解这个项目。所以,写好接口文

2021-10-05 20:18:44 259

原创 毕设利器,教你从零搭建一个有规范的spring boot项目【五】——用户身份信息验证

接上篇《毕设利器,教你从零搭建一个有规范的spring boot项目【四】——参数校验》用户身份信息验证这个问题老生常谈了。拿csdn来举例,可以看到我们自己的头像,昵称,以及各种信息。那么可能就需要这么一个用户信息接口,调用这个接口,我们可以拿到我们的头像url,昵称,以及各种信息。...

2021-10-02 14:56:09 381 2

原创 毕设利器,教你从零搭建一个有规范的spring boot项目【四】——参数校验

接上篇毕设利器,教你从零搭建一个有规范的spring boot项目【三】—— 返回结果的处理和统一异常处理我现在想新增一个用户。写好了代码如下:可以看到我做了名字不能为空的参数校验。参数校验这个是一定要做的,鬼知道别人会调用你的接口给你些什么数据。但真要做起来,其实还是要费不少功夫的。我上面这个demo还好,只有一个参数,万一参数多起来了,难道要像下面这样嘛?想想还真有点累。不好意思,上面的代码打错了,应该是StringUtils.isBlank(userVO.getName())才对,

2021-09-26 15:02:43 170

原创 毕设利器,教你从零搭建一个有规范的spring boot项目【三】—— 返回结果的处理和统一异常处理

接上篇毕设利器,教你从零搭建一个有规范的spring boot项目【二】初步调通了数据库,能够对数据库做基本的增上改查操作,那么接下来,就要注意一些规范和统一的问题了。拿返回结果的处理来举例子。上一篇博客中,我们的返回结果格式是这样的:前端朋友拿到这个数据了,可能要拿到name这个字段去展示是吧,但要是后台程序出错了怎么办?出错了,就不会返回name这个字段,前端也就跟着不知所措了。因此我们还要返回一个字段,告诉前端他是否请求成功。而这种字段通常是有一定规范的,举个例子,打开bilibili

2021-09-16 22:52:08 290

原创 毕设利器,教你从零搭建一个有规范的spring boot项目【二】

接上篇《毕设利器,教你从零搭建一个有规范的spring boot项目【一】》之前只是做了简单的访问测试,要作为一个完整的web项目,我们需要解析用户发出的请求拿到数据库中的数据进行数据的运算将数据呈现在用户面前之前只是简单地了解了第一步,接下来要连接数据库,通常用的都是MySQL。引入依赖首先还是拿别人写好的代码,引入连接数据库所需要的依赖:<!--整合mybatis-plus--><dependency> <groupId>com.baomid

2021-09-08 23:12:55 501

原创 毕设利器,教你从零搭建一个有规范的spring boot项目【一】

创建项目首先新建一个项目放上我的命名方式以供参考:开发工具勾选,一般我只选这一个Lombok,是能提高开发效率的。新建的项目目录长这个样子:除了我画的这两处重点,其他的全部可以忽略。先看pom.xml,说到pom.xml就不得不提maven啦。以往我们想使用别人写好的代码,想使用别人的工具类,都需要手动地去添加jar包,自己找,自己导入。而有了maven,我们就可以在项目中的pom.xml写下某个jar包的名字(又叫依赖),项目就可以自己联网去找对应的jar包。省去了开发者一个一

2021-09-03 00:23:59 491

原创 Spring Boot多模块无法扫描到module的问题

问题先说问题。像这样的结构,一直无法扫描到mini,mini报找不到jar包的错,但是能运行,不过mini下的controller写了一直不能访问。解决方式首先保证项目里的pom有mini然后点开maven,点击下图的按钮刷新,知道mini出现再次刷新maven即可。...

2021-06-22 23:12:34 1989 1

原创 git合并远程分支

需求是这样的:如图所示,我目前开发的分支在Local的ma-dev中,关联的远程的分支是origin/ma-dev。需要把我写的代码合并到origin/dev分支中,这个远程分支和我本地的dev分支关联。思路如下:需要切换到本地的dev分支从远程拉取下来最新的代码将ma-dev的代码合并过来最后push上去# 1.切换到本地的dev分支git checkout dev# 2.从远程拉取下来最新的代码git pull# 3.将ma-dev的代码合并过来git merge m

2021-06-17 21:18:56 1960 5

原创 Servlet 请求转发(forward和include)和重定向(sendRedirect)的工作过程

请求转发request.getRequestDispatcher(target).forward(request, response);和request.getRequestDispatcher(target).include(request, response);都是request.RequestDispatcher发起的,include的流程如下图:forward的工作流程如下:include是在服务器,从servlet1直接转发到servlet2,由2返回结果给1,再由1产生最终返回结

2021-05-23 10:40:34 415

原创 IoC和AOP

Inverse of Control控制反转,是一种设计思想,原来我们新建一个对象,需要自己去手动new一个对象,但有了IoC,就把创建对象这个过程的控制权交给了框架来处理。IoC 容器实际上就是个Map<key,value>,Map 中存放的是各种对象。当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。拿一个具体的例子来体现IoC的好处,通常来说,我们的Spring Boot项目里,Controller里会有一个Service,Servi

2021-05-21 18:53:05 105

原创 通过反射调用方法

同样是个需要手写的面试题,记好思路会比较好。获取该类的class对象还是通过该类,获得需要调用的方法通过方法,指明调用的类来调用该方法package reflect;import java.lang.reflect.Method;public class Reflect { public static void main(String[] args) { // 1. 获取该类的class对象 Class<Student> clazz = Student.class

2021-05-20 10:24:54 85

原创 JDBC连接MySQL

最简单的分4步注册驱动打开连接进行SQL操作关闭流Connection conn = null; Statement stmt = null; try { // 注册JDBC驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 打开连接,此处连接为MySQL8.0的写法 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/库名

2021-05-20 10:07:07 88

原创 java面试题 遍历文件夹

面试有遇到过让你遍历文件夹的,要么让你算出里面所有文件的数量,要么让你列出层级出来。当然子文件夹也要展开的。思路都是一样的,使用递归,方法传入一个File类型的参数,进入方法后,判断如果是文件夹的话,就使用listFiles()方法,获取当前文件夹下的File,循环再次调用递归的方法。如果是文件的话,就进行题目要求的操作,比如计算文件的数量,或者列出文件。以计算文件数量为例:public static int getFileNum(File file) { int num = 0; // 如果是

2021-05-20 09:39:31 132

原创 多态的成员变量

package test;public class Duotai { public static void main(String[] args) { Person p = new Teacher(); p.call(); }}class Person{ private String name; public void call() { System.out.println(name); }}class Teacher extends Person{ private

2021-05-19 23:02:47 304

原创 Java方法传参 传的是什么

Java是通过值传递的,也就是通过拷贝传递的。先来看基本数据类型的传递过程:对象的传递过程其实也是一样,不过这回x里放的是对象在堆里的地址,结果上会有所不同:

2021-04-22 21:09:56 134

原创 Java 8种基本数据类型和对应的包装类型

Java中有 8 种基本数据类型,分别为:6 种数字类型 :byte、short、int、long、float、double1 种字符类型:char1 种布尔型:boolean。这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean基本类型位数字节默认值int3240short1620long6480Lbyte810char162

2021-04-20 21:34:46 2708

原创 java 单例模式

懒汉式顾名思义,比较懒,你每次要拿这个单例对象的时候,才会去检查有没有,如果没有,才去实例化这个单例对象。public class Singleton{ private static Singleton singleton; private Singleton(){} public static Singleton getSingleton(){ if(singleton == null) singleton = new Singleton(); return singleto

2021-04-12 13:08:46 41

原创 Linux常用命令

通用reboot – 重启ctrl+c – 中断当前进程clear – 清除屏幕上打印的内容显示ifconfig – 显示ippwd – 打印工作目录,当前所有文件夹全路径cd 相对路径或绝对路径 – 进入到文件夹mkdir 文件夹名 – 新建空文件夹ls – 平铺显示当前文件夹下的文件ll – 详细列表显示当前文件夹下的文件其中ls和ll的区别如下图:进入编辑文件vi 文件名 – 记事本那种编辑文件,如果没有这个文件则会创建。vim 文件名 – 高亮文字,notepad++那

2021-02-01 20:00:01 96

原创 js中var、let、const的区别

ES6是JavaScript目前最新的一种语法标准。var是js中定义变量的方式。不过ES6提出了let和const两种新的定义变量的方式。接下来说一下这两种新的方式let和const,与var的区别,以及使用时机。const我们用const定义常量。被定义的常量无法再更改。它与var的区别是这样子的,我们用var的时候:// 这样不会报错var PI = Math.PI;PI = 100;运行结果如图:如果我们用let:// 把var换成const,这样就会报错const

2021-02-01 19:10:39 160

原创 讲一个索引失效应对措施的案例

建表SQLcreate table staffs( id int primary key auto_increment, name varchar(24) not null default'' comment'姓名', age int not null default 0 comment'年龄', pos varchar(20) not null defalut'' comment'职位', add_time timestamp not null dafault current_timestam

2021-01-20 18:08:43 85

原创 多表索引优化分析

双表图为两张表左连接用右表索引select * from class left join book on class.card=book.card;那么索引应该建在右表book的card字段。右连接用左表索引如果索引已然建立在class的card字段上,那么使用select * from book right join class on book.card=class.card;,查询效率会更高。上面两种情况结果是一样的,查询结果和explain结果都是。三表和两表一样,左连接用右表索引,

2021-01-19 19:21:48 186

原创 单表索引优化分析

我们拿一个例子来分析,这样一个表需求:查询category_id为1且comments大于1的情况下,views最多的article_id。SQL语句:select id,author_id from article where category_id=1 and comments>1 order by views desc limit1;要求分析出要做的索引。不做索引时,我们explain上面的SQL语句,情况是:可以看到问题在于type的值为ALL和Extra的值为Using fil

2021-01-17 14:49:51 92

原创 MySQL性能分析

MySQL常见性能瓶颈CPU:CPU的饱和一般发生在IO时IO:IO瓶颈发生在装入数据远大于内存容量时服务器硬件的性能瓶颈:top,free,iostat和vmstat来查看系统的性能状态Explain是什么(查看执行计划)使用EXPLAIN关键字可以模拟优化器执行sql查询语句,从而知道mysql是如何处理你的sql语句的。分析你的查询语句或是表结构的性能瓶颈。能干嘛查看表的读取顺序查看数据读取操作的操作类型查看哪些索引可以使用查看哪些索引可以被实际使用查看表之间的引用查看

2021-01-16 14:02:38 116

原创 判断是否需要创建索引

哪些情况需要创建索引主键自动建立唯一索引频繁作为查询条件的字段应该创建索引查询中与其他表关联的字段,外键关系建立索引频繁更新的字段不适合创建索引 – 因为每次更新不只更新记录还会更新索引Where里用不到的字段的不创建索引单键/组合索引的选择问题 – 在高并发下倾向创建组合索引查询中排序的字段 – 排序字段若通过索引去访问将大大提高排序速度查询中统计或者分组字段哪些情况不需要创建索引表记录太少 – mysql300w左右就可以考虑建索引了经常增删改的表 – 因为索引要跟着更新数

2021-01-15 15:11:14 572

原创 MySQL索引结构 -- BTree索引

BTree索引初始化介绍:如图一颗B+树,浅蓝色表示磁盘块,每个磁盘块包括几个数据项(深蓝色)和指针(黄色)。如磁盘块1包括数据项17和35,包含指针P1、P2、P3;P1表示小于17的磁盘块,P2表示在17-35之间的磁盘块,P3表示大于35的磁盘块。真实的数据只存在于叶子节点,非叶子节点不存储真实数据,只存储指引搜索方向的数据项。如17、35并不真实存在数据表中。查找过程(用上图查找数据项29):首先把磁盘块1由磁盘加载到内存,此时发生一次IO;在内存中用二分查找确定29在17和35之间

2021-01-15 15:02:45 341

原创 MySQL索引分类和基本语法(创建、删除、查看)

种类单值索引:即一个索引只包含单个列。一个表可以有多个单列索引。唯一索引:索引列的值必须唯一,但允许有空值。复合索引:即一个索引包含多个列。假如现在有一个people表,内有字段id(主键不需要做索引),name,age,phone_number(电话号码)那么:单值索引:可以单独用name或age做一个索引,任何一个字段都可以。这样的索引可以做多个。唯一索引:和单值索引一样,但做索引的该字段必须唯一,比如你确定people表中phone_number的值唯一的话,那么便可以在

2021-01-15 14:49:35 111

原创 索引简介

索引是什么官方定义:索引(Index)事帮助mysql高效获取数据的数据结构。你可以简单理解为“排好序的快速查找数据结构”(排序+查找)详解,如下是一种可能的索引方式的示例:为了加快col2的查找,右边的树节点包含的是索引键值和一个指向对应数据记录物理地址的指针。这棵树可以看到是排好序的,比当前节点大的数字在其右子树,小的在左子树,通过对树的节点查找快速找到右表中该值的位置。结论:数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,它以某种方式指向数据,这样就可以在这些数

2021-01-15 14:36:26 96

原创 常见通用的Join查询

sql执行顺序(以下示例,从上到下是有顺序的)咱们写的sql语句select distinct <select_list>from <left_table> <join_type>join <right_table> on <join_condition>where <where_condition>group by <group_by_list>having <having_conditio

2021-01-14 14:45:39 683

原创 性能下降sql慢(执行时间长、等待时间长)可能的原因

性能下降sql慢(执行时间长、等待时间长)可能的原因:查询语句写的烂索引失效关联查询太多join(设计缺陷或不得已的需求)服务器调优及各个参数设置(缓冲、线程数等)

2021-01-14 14:26:25 561

空空如也

空空如也

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

TA关注的人

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