自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 VUE H5 监听滚动上拉分页加载内容

最近接了一个需求,是微信浏览器监听用户上拉操作,从而实现页面滚动加载的效果。其实网上已经有很多类似成熟的栗子了,但是由于自己开发经验有限,所以第一次看到这个需求的时候也是一百脸茫然,当时不知道网上有这么成熟的框架以及案例。随后网上一顿猛操作,看了一下确实不难。首先我们使用的是vue开发组件,是不是觉得我们这个是前后端分离的项目了,然而并没有,虽然用到了vue,完全是因为,这玩意儿好用罢了,springboot+thymeleaf模板引擎+Vue.js+elementUI等等等,总之技术栈用的很凌乱,接下

2020-11-19 12:40:13 1868

原创 完美解决select2插件提示信息是英文的问题

本人用的是若依提供的select2插件,不知道有没有在此基础上重新包装,应该是没有的。 遇见的问题: 在开发业务时,有一个需求是,可以同时选择至多两个选项,所以当时一开始就想到select2插件。 但是在选择两个之后,该选择框提示的是英文信息,看着就很难受: 需求: 我想将这个英文提示改成中文提示。 实现: 前端页面引入这段js: (function(){if(jQuery&&jQuery.fn&&jQuery.fn

2020-10-20 17:08:39 2694

原创 Thymeleaf中循环渲染List集合中的数字&th:style用法

thymeleaf循环遍历数字<ul th:each="user : ${userList}"> <li> <div th:each="star : ${#numbers.sequence(1,user.star)}"> <img th:src="@{/img/star.png}"> </div> </li></ul> 2.thy..

2020-10-14 09:21:03 3307 1

原创 Ajax和SpringBoot实现JSON的传输与接收

无论是前后端分离的项目还是不分离的项目,在进行数据交互的时候我们可以将数据封装成XML、JSON等格式进行数据的交互;使用开发项目中最为常见的方式将数据封装成JSON格式传输到后台,前端分别使用axios、Ajax进行JSON 数据的传送,后端使用Spring Boot进行接收,并通过几种常用的注解实现JSON数据的接收。 使用前我们必须要理解什么是JSON对象?什么是JSON字符串? //首先定义一个JSON对象 1、使用Javascript的方式定义 var jsonObj

2020-09-03 16:16:45 1561

原创 Redis基础知识回顾&相关指令

Redis是一个用C语言开发的高速缓存数据库,高级的key:value存储系统 缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中是需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库中去查询,造成缓存穿透。解决方案:最简单粗暴的方法:如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们就把这个空结果进行缓存,但它的过期时间会很短,最长不超过5分钟。Redis支持的数据类型:Strings(字符串) lists(字符串列表) hashes(

2020-09-03 11:17:31 146

原创 vue实现用户注册获取验证码及验证码校验功能(部分代码)

首先需要明确业务需求:前端 需要对用户手机号码校验(手机号格式、手机号输入框是否为空) 需要对验证码校验(验证码输入格式、验证码输入框是否为空) 获取验证码按钮校验(控制验证码60s内不可重复提交、判断验证码是否和输入框中的值相同、验证码输入框是否为空) 根据不同返回结果给予不同的提示 手机号已绑定(别人已绑定) 手机号为当前用户已绑定 后端: 集成发送短信验证码能力 随机生成六位数短信验证法 校验手机号是否已绑定 存储 一个简单的用户手机号绑定/注

2020-08-20 17:29:49 3885

原创 数据结构(图)

一、图:概念:图是由两个集合V和E构成的二元组,计做G=(V,E),其中V是图中的定点的非空有限集合,E是图中边的有限集合。有向图:图中每条边都是有方向的,顶点间的关系用<vi , vj>表示; 无向图:图中的每条边都是无方向的顶点间的关系用(vi , vj)表示; 完全图:图中任意两个顶点都有一条边相互连接。有向完全图:n个顶点的有向图有n(n-1)条边。 无向完全图:n个顶点的无向图有n(n-1)/2条边。度:顶点v的度是与它相关联的边的条数,记作TD(v)..

2020-08-20 17:04:00 222

原创 数据结构(树和二叉树)

一、树:概念:树是n(n>=0)个结点的有限集合,n= 0时称为空树 , 在任一非空树中:有且仅有一个称为根的结点,其余的结点可分为m(m>=0)个互不相交的子集T1 , T2.... Tm ,其中每个子集本身又是一棵树,并称其为根结点的子树。双亲和孩子 兄弟:具有相同双亲的结点互为兄弟 结点的度:一个结点的子树的个数计为该结点的度 树的度:树中各个结点的度的最大值 叶子结点:也称为终端结点,指度为零的结点。 内部结点:度不为零的结点称为分支结点或非终端结点。除根结点外,分支结

2020-08-20 16:59:02 230

原创 数据结构(顺序查找、二分查找、分块查找)

一、查找概念:给定一个值K,在含有n个记录的文件中进行搜索,寻找一个关键字值等于k的记录,如找到则输出该记录,否则输出查找不成功的信息。查找算法的优劣 用比较次数的平均值来评估算法的优劣,称为平均查找长度ASL 二、静态查找表顺序查找(线性查找),要查找的元素可以是有序的也可以是无序的。 折半查找(二分或对分查找),要查找的元素前提是有序的。 分块查找(索引顺序查找)顺序查找:性能分析:顺序查找平均查找长度为:(n+1)/2,时间效率为O(n) 优点:算法简单、适应面广,对查找表

2020-08-20 16:56:05 1894

原创 数据结构(直接插入排序、希尔排序、直接选择排序、堆排序、冒泡排序、快速排序)

一、排序:概念:将一组杂乱无章的数据按一定的规律次序排列起来。排序算法的好坏衡量?时间效率——排序速度 控件效率——占用内存辅助空间的大小 稳定性——若两个记录A和B的关键字相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的内部排序:指待排序记录全部存放在内存中排序的过程 外部排序:指待排序记录的数量很大,以至于内存不能容纳全部记录,在排序过程中尚需要对外存进行访问的过程。 排序方法: 插入排序: 直接插入排序 希尔排序 选择排序: 直接选择

2020-08-20 16:53:44 1817

原创 KMP算法

概念:改进的字符串匹配算法,有一个next()函数,关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数,已达到快速匹配的目的。其具体的实现就是实现一个next()函数,函数包含了模式串局部匹配的信息。 例如:字符串"BBC ABCDAB ABCDACDABDE"与搜索词"ABCDABD"进行匹配: 首先拿搜索词的第一个字符依次与字符串进行匹配,如果不同则往后移动一位,如果相同则继续匹配搜索词的第二个字符,依次类推,但是中途匹配失败了,又要重头开始匹配,这样显然影响效率,KMP算法就是利用失败的

2020-08-20 16:48:30 98

原创 线性表、栈、队列、串

一:线性表概念:n个元素有限序列(a1,a2,a3....an)存在唯一的表头和表尾 存储: 顺序存储(地址连续的存储单元依次存储)可以随机的存取表中元素,但是插入和删除操作要移动大量的元素。 链式存储(用结点来存储数据,结点空间可以是连续的也可以是不连续的)因此存储数据的元素的同时必须存储数据元素之间的逻辑关系。 其插入和删除不需要移动元素,通过指针来操作。 但是增加了存储空间开销,不能随机访问任意一结点。 获取第i 个元素的位置公式: LOC(ai) = LOC(

2020-08-20 16:44:03 453

原创 Vue基础知识总结

网络通信:axios , 前端通信框架。因为Vue的边界明确,就是为了处理DOM,所以并不具备通信能力,此时就需要额外使用一个通信框架与服务器交互;也可以直接选用JQuery提供的Ajax进行通信。 跳转;vue-router 管理:vuex vue:一种渐进式JavaScript框架 ,所谓渐进式就是逐步实现新特性,如实现模块化开发、路由、状态管理等新特性。综合了Angular(模块化)和React(虚拟DOM)的优点 NPM:项目综合管理工具,类似于后端的Maven CSS预处理器 SASS

2020-08-04 20:57:19 302

原创 MyBatis-plus基础巩固

周末无聊,就用了一天时间巩固了一下MyBatis-plus,此文仅作为学习总结,如果对你有用的话,欢迎收藏。工作中学会如何使用各种各样的工具确实有利于提升我们的开发效率,但是在使用工具的同时,更应该去看看其底层的源码、实现。官网:https://mp.baomidou.com/guide/ 特性 无侵入 耗损小 强大的CRUD操作 支持Lambda形式调用 支持主键自动生成 支持ActiveRecord模式 支持自定义全局通用操作 内置代码生成器 内置分页插件

2020-07-27 20:29:51 235

原创 Mybatis基础巩固

陆陆续续用了4天晚上的时间,巩固了一遍Mybatis基础,该篇文章仅用于知识存档。数据持久化 持久化就是将程序的数据在持久状态和瞬时状态转化的过程 namespace中的包名要和mapper接口的包名一致! select、insert、delete、update(增删改需要提交事务) id:就是对应的namespace中的方法名; resultType:SQL语句执行的返回值;对象、list parameterType:参数的返回值 resultMap:对应mapper文件中对象

2020-07-25 11:09:57 129

原创 MySQL基础总结

mysql中的操作语句不区分大小写 创建数据库 CREATE DATABASE IF NOT EXISTS test01 删除数据库 CREATE DATABASE IF EXISTS test01 使用数据库 USE test02, 如果你的表名或者字段名是特殊字符 USE `user` 查看数据库 SHOW DATABASES ---查看所有数据库 数据库的列类型 数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 .

2020-07-13 21:40:12 89

原创 Mysql 56 解决windows本地无法开启服务-1067

我相信在windows环境下用过mysql的伙伴都遇到过类似的问题,使用Navicat连接数据库的时候总会报一些奇葩的问题,明明前阵子还好好的,最常见的就是mysql error10061,问题,网上一搜都知道,是因为本地mysql服务没启动,那好吧,既然没有启动,那我们就去启动吧,win+R 输入 services.msc 进入windows服务操作界面。 找到mysql —— 点击启动,OK,如果能启动,那皆大欢喜,但是大多数情况是报1067 错误,WTF? 我在网上找了很多方法,有些说需要修改m

2020-07-09 13:31:21 1136

原创 SpringBoot+SpringAOP整合系统日志统计

最近做一个关于系统日志统计相关的功能,主要统计的是controller层的操作,比较简单,没有涉及统计service层和dao层的。系统架构:SpringBoot、Shiro、Mybatis、thymelaf问题分析:系统日志统计 其实已经很成熟了,网上随便一搜都能找到较为完善的解决思路及代码示例,我再写一遍,仅仅是为了对新学习的技术起到一个巩固、复盘的一个过程。首先:统计系统访问日志,必然少不了日志表,还应该设计其主要统计的字段有哪些:/** 主键ID */private Inte

2020-07-06 17:07:36 505

原创 SpringMVC复习

最近空闲之余用了四天半的时间简单的回顾了一下SPringMVC,该篇仅作为个人学习总结。 Spring: IOC 和 AOP SpringMVC的执行流程 特点: 轻量级、简单易学 不需要很多依赖 高效、基于请求响应的MVC框架 与Spring兼容性好,无缝结合 约定优于配置 功能强大:RESTful、数据验证、格式化、本地化、主题 简洁灵活 执行流程 @RequestMapping @GetMapping...

2020-07-02 22:28:14 225

原创 String数组转换及获取

工作中遇到一个问题,就是前端Ajax传过来的json数据,后台获取到的json数据转换为String数组,业务的需要,可以将String数组遍历获取每个元素,再转换为Int类型的数组。 话不多说,上代码! public int deleteUnitByIds(String ids){ //1、将前台获取的ids转为string数组 String[] strings = null; strings = Convert.toStrArray(ids); //2、声明int

2020-06-30 14:31:36 2264

原创 弗曼学习法,你在用吗?

今天简单的谈论一下弗曼学习法,是被学术界认为最niubi的学习方法。理查德.弗曼(1918-1988)1965年获得诺贝尔物理学奖,美籍犹太人,也是最早提出 纳米 的人。之所以以他的名字命名改学习方法,想必不用说大家也都知道了,总之很厉害一个人就是了。 弗曼学习法的原理,可以用一句话来概括(透过现象看本质),比方说我们刚学习、接触一个知识点,按照正常的逻辑就是去学会怎么使用它就行了,而带来的弊端就是,当时,亦或者一段时间内我们能记得,但是随着时间加长,没有使用过这个知识点,我们便会很快就忘记了。因为我

2020-06-30 14:16:00 340

原创 Thymeleaf基础

Thymeleaf标准表达式语法:变量表达式 选择或星号表达式 文字国际化表达式 URL表达式变量表达式:${session.user.name}<span th:text="${bool.author.name}"> <li th:each="book:${books}">选择(星号)表达式:用一个预先选择的对象来代替上下文变量容器(map)来执行: *{customer:name}<div th:object="${book}"> ... .

2020-05-27 22:58:20 155

原创 RuoYi系统学习部分总结

RuoYi系统是一个不错的Git项目,适合构建各种后台管理系统,其中提供多样化的版本:前后端不分离的、前后端分离的、基于微服务的,还支持各种常用数据库的。不得不说,改项目已经做得较为完善了。如果小伙伴感兴趣,可以去看看。地址:http://ruoyi.vip/前后端不分离:https://gitee.com/y_project/RuoYi前后端分离:https://gitee.com/y_project/RuoYi-VueSpring Cloud:https://gitee.com/y_pr

2020-05-22 17:13:33 1916 1

原创 JavaScript对象

声明:一下总结的JavaScript的知识点,仅是对自己所学知识的一个总结,文中可能有纰漏,也可能有错误的地方,希望谅解,如果可以,希望不吝赐教,谢谢。==============================================================数字:new Number 创建一个数字对象var x = new Number(123); document.write(x); //123 document.write(typeof x); //Object var

2020-05-14 23:42:49 82

原创 JavaScript基础

声明:一下总结的JavaScript的知识点,仅是对自己所学知识的一个总结,文中可能有纰漏,也可能有错误的地方,希望谅解,如果可以,希望不吝赐教,谢谢。==============================================================两种提供调试的方法:alert() //以弹窗的形式 console.log() //浏览器控制台打印JavaScript提供的基本数据类型:(undefined、Boolean、 Number、String、null)

2020-05-14 23:42:18 68

原创 Docker容器的跨主机访问

使用网桥实现跨主机容器连接 修改/etc.default/docker文件 -b 指定使用自定义网桥 -b = br0 -fixed-cidr限制ip地址分配范围 IP地址划分: Host1:10.211.55.64/26 地址范围:10.21.55.65~10.211.55.126 Host2:192.168.59.128/26 地址范围:10.211.55.129~10.211.55.190 优点:配置

2020-05-14 16:14:43 245

原创 线程的生命周期

一、线程的生命周期新建(New)、就绪(Runnable)、运行(Runnint)、阻塞(Blocked)、死亡(Dead)新建(New):当创建一个新的实例(对象),此线程进入新建状态;ps:未启动 Theard t = new Theard(); 就绪(Runnable) 线程已经启动,正在等待分配给CPU时间片,等候CPU的资源;t.start();...

2020-05-14 13:44:06 82

原创 Docker的客户端服务器模式

Docker提供了Remote API,类似于RESTful 风格的API,我们可以调用Remote API将自己的程序和Docker集成,从而运行我们的程序在Docker上。Docker官方的Remote API Reference: https://docs.docker.com/reference/api/docker_remote_api/ Docker的C/S 模式的连接方式(客户端与守护进程的连接方式)unix:///var/run/docker.sock === 默认 tcp:

2020-05-14 13:41:05 577

原创 Docker容器的网络连接

Docker容器的网络基础 ifconfig 查看系统网络设备 docker0 Linux的虚拟网桥 是数据链路层的设备 可以设置IP地址 相当于拥有一个隐藏的虚拟网卡 docker0的地址划分: IP:172.17.42.1 子网掩码:255.255.0.0 MAC :02:42:ac:11:00:00 到 02:42:ac:11:ff:ff 总共提供了6534个地址 安装网桥:sudo apt-get install bridge

2020-05-14 13:40:33 222

原创 Docker容器的数据管理

Docker容器的数据卷 Data Volume(数据卷) 是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或多个容器提供访问 数据卷设计的目的,在于数据的永久化,它完全独立于容器的生存周期,因此,Docker不会再容器删除时删除其挂在的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理。 数据卷的特点: 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中。 数据卷可以在容器之间共享和重用。 可以对数据卷里的

2020-05-14 13:39:56 94

原创 获取和推送&构建镜像

查找镜像使用DockerHub https://registry.nub.dcker.com docker search [OPTINOS] TERMdocker search ubuntu docker search -s 3 ubuntu拉去镜像docker pull [OPTIONS] NAME docker pull ubuntu:14.04 //安装ubuntu镜像 docker images //查看安装的镜像推送镜像docker push==============

2020-05-13 22:53:41 121

原创 Docker安装与配置

在Ubuntu中安装docker;首先检查Ubuntu的内核版本 uname -a 检查Device Mapper(存储驱动的检查) ls -l /sys/class/misc/device-mapperUbuntu中安装Docker的方式安装Ubuntu维护的版本 sudo apt-get install docker.io source /etc/bash_completion.d/docker.io sudo docker.io version 安装Docker维护的版本(

2020-05-13 22:53:01 110

原创 docker镜像与仓库

显示所有镜像docker images -a 仓库名 //显示所有镜像TAG:镜像的标签查看镜像的详细信息docker inspect ubuntu删除镜像docker rmi [-f][-no] Images

2020-05-13 22:52:19 101

原创 容器的基本操作&守护式容器&在容器中部署静态网站

容器的基本操作:启动容器docker run IMAGE [Command][args]启动交互式容器docker run -i -t IMAGE /bin/bash查看容器:docker ps [-a][-l] //不带参数列出正在运行的容器 -a 表示列出所有的容器 -l 表示列出最新的容器 docker inspect [容器id ||容器名] //查看容器的状态,详细信息自动以容器名docker run --name=myname01 -i -t ubuntu /bin/ba

2020-05-13 22:51:46 89

原创 docker简介&基本组成&容器相关技术简介

什么是容器?一种虚拟化的方案|| 操作系统级别的虚拟化,只能运行相同或相似内核的操作系统。什么是Docker?将应用程序自动部署到容器 Go语言开源引擎 GitHub地址:https://github.com/docker/dockerDocker的目标?提供简单轻量的建模方式,非常高的性能 快速高效的开发生命周期,开发-测试都使用相同的环境 鼓励使用面向服务的架构,高内聚、低耦合,单一应用Docker使用场景?使用Docker容器开发、测试、部署服务 创建隔离的运行环境 搭

2020-05-13 22:51:14 104

原创 文本编辑器Vim

Vim简介:Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux的最常用的文本编辑器,它的作用是简历、编辑、显示文本文件。Vim/Vi没有菜单,只有命令。 http://www.vim.org进入文件: vi filename 命令模式 命令模式: i a o 插入模式 ESC 退出 输入:wq 即可退出文本文件 命令模式:输入 : ===>编辑模式 编辑模式: 命令以回车 ===> 命令模式======================================

2020-05-13 22:50:30 85

原创 Shell命令技巧

tab键 命令补全 history 可以显示用户先前输入的命令并重新调整它们 clear 清屏 同 ctrl+l ctrl + u 删除操作命令行光标前面的所有字符 方向键上或下 ,查找以前执行过的命令========================================================================定义别名alias如: alias copy= cp alias drm = "rm -rf"删除别名unalias drm======

2020-05-12 23:25:06 133

原创 Linux常用命令

文件命名规则:除了/之外,所有字符都合法 有些字符最好不用,如空格、制表符、退格符和字符@#¥&()- 等 避免使用 . 作为普通文件名的第一个字符。(表示隐藏文件) 大小写敏感。=======================================================================命令格式:命令 -选项 参数例如: ls -la /etc 表示:查看etc目录的详细信息说明:当有多个选项时,可以写在一起。两个特殊目录 . 和 ..

2020-05-12 23:24:34 87

原创 Linux系统安装

VMware虚拟机软件应用 Linux系统安装设置 远程登录管理工具介绍=======================================================================VMware是一个虚拟PC的软件,可以在现有操作系统上虚拟一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。 网站:http://www.vmware.com VMware主要特点:不需要分区或重新开机就能在同一台PC上使用两种以上的

2020-05-12 23:24:02 77

原创 Linux发展历史&应用领域&学习方法

1969年,美国贝尔实验室的肯.汤普森在DEC PDP-7机器上开发出了UNIX系统。 1971年,丹尼斯.里奇发明了C语言,UNIX系统的绝大部分源代码用C语言重写,可移植性打下基础。 Linux出现于1991年,李纳斯和后来陆续加入的众多爱好者共同开发完成,Linux是一个自由软件,是源代码开放的UNIX。=======================================================================自由软件特点: 使用自由,可以不受任何限制的使

2020-05-12 23:23:19 131

Eclipse快捷键.rar

IDEA中设置原有Eclipse的快捷键,只需在IDEA中:file--&gt;seting--&gt;key-map---&gt;选择Eclipse,并且引入jar包,包文件里面改了部分eclipse的快捷键,与IDEA的内置快捷键不冲突

2019-09-07

空空如也

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

TA关注的人

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