- 博客(29)
- 资源 (5)
- 收藏
- 关注
原创 SpringBoot发送html邮箱验证码
1. 效果展示(用户收到的)2. 邮件推送管理(见以后的博客)3. 后端核心代码(通用版)3.1 SendEmailVO实体类3.2 Controller层核心代码3.3 ServiceImpl层核心代码3.4 利用正则检查邮箱是否合法工具类3.5 字符替换工具类3.6 Reposity层3.7 发送html邮件的核心配置类4. 后端代码(带例子版)4.1 Controller层4.2 ServiceImpl层5. html邮件内容5.1 注册验证码模板5.2 注册验证码模板
2021-12-17 00:05:25 10555 16
原创 Vue+SpringBoot上传图片至Gitee并获取网页访问图片的url
目录一、图文演示流程:二、具体思想:三、代码实现(前端):四、代码实现(后端):五、参考api:一、图文演示流程:二、具体思想:大致思路:使用Vue将本地上传的图片转为Base64格式,然后通过调用Gitee的api接口将图片存放在远程仓库中,这样我们就可以通过url来对图片进行一个在线访问了。三、代码实现(前端):<template> <div> <el-upload ref="upload" list-type="pi
2021-11-17 01:06:29 29080 4
原创 Linux-VMware常用设置(时间+网络)及网络连接激活失败解决方法-基础篇②
在VMWare中默认使用的NAT模式NAT模式:Network Address Translation,网络地址转换,允许一个整体机构以一个公用IP地址出现在Internet上,顾名思义,它是一种把内部私有网络地址(IP地址)通过NAT转发成合法公有网络IP地址的技术优点:可以节省IP资源 (不会占用局域网的Ip地址,因为是新分配的网段)缺点:由于网段不同,局域网内其他设备无法访问虚拟机中的操作系统。
2023-02-19 19:52:43 6246 3
原创 Linux-VMware虚拟机与CentOS操作系统的安装-基础篇①
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。一般情况下我们的电脑只能运行一个操作系统,可能会因为工作或者学习的需要,我们希望使用其它的操作系统,但是不可能将自己 windows 操作系统更换成其它操作系统
2023-02-18 16:20:33 247
原创 nacos服务配置和持久化配置
目录一、Nacos服务注册中心对比提升CAP模型二、Nacos服务配置中心1. 添加依赖2. 配置application.yaml3. 配置bootstrap.yaml4. 平台创建配置规则5. 业务层编写6. 访问获取配置内容7. Nacos动态刷新(@RefreshScope注解)三、切换不同环境1. DateId方案2. Group方案3. Namespace空间方案四、Nacos持久化配置1. derby数据库2. 切换MySql数据库① 创建数据库② 在数据库
2022-06-19 01:34:44 4582 1
原创 nacos简易实现负载均衡
一、什么是Nacos?二、Nacos下载和安装1. 使用Windows启动2. 验证nacos是否成功启动三、Nacos Discovery服务注册/发现四、简易实现负载均衡1. 注册者配置2. 注册者启动类3. 注册者业务层4. 消费者配置5. 消费者启动类6. 消费者业务层7. 开始调用接口8. 遇到问题解决`java.net.UnknownHostException: nacos-provider`.........
2022-06-08 01:38:18 10447 11
原创 Lambda表达式-Stream流
一、流式思想二、如何获取流三、Stream流常用API1. forEach2. map3. filter4. count5. collect6. limit7. skip8. concat
2022-05-17 09:44:44 430 3
原创 Lambda表达式-常见的函数式接口
目录一、Runnable / Callable接口二、Supplie一、Runnable / Callable接口在Thred构造器中,真正线程执行的内容就是这个Runnable的具体实现不难看出,Runnable里面只有一个抽象的run方法函数式接口中的抽象方法怎么定义,Lambda表达式就怎么定义开始实现多线程操作:同理Callable接口,不难看出,Callable只是多了个返回值罢了二、Supplier源码非常简单,还配上了贴心的注释:定义了一个指定类型结果的返回,等需要调
2022-05-15 01:17:37 175
原创 Lamda表达式-入门篇
一、什么是Lamda表达式?二、Lambda表达式语法格式1. 第一种语法格式2. 第二种语法格式:三、Lambda的语法格式1. 使用Lambda的前提2. 具体的实现
2022-05-14 05:26:53 481
原创 IDEA集成Git(配置、交互、解决冲突、总结)
一、IDEA配置Git1. 配置执行路径2. 本地初始化操作3.提交缓存区和本地库操作4. 查看提交日志二、本地库和远程仓交互(强制版)三、本地库和远程库交互(克隆版)四、如何使用IDEA解决冲突五、总结
2022-05-02 23:59:51 5656 20
原创 Git分支详解
一、什么是分支?二、图解分支三、分支的好处四、基本命令1. 新增分支2. 查看分支3. 切换分支4. 删除分支五、分支冲突与解决
2022-04-28 23:55:43 5459 10
原创 Git基本命令篇
一、前言1. 概念2. 基础核心图二、 基础命令1. 查看版本2. 清屏操作3. 设置签名和邮箱4. 本地仓库初始化5. 查看当前的所有文件6. 将文件提交到暂存区7. 将暂存区的内容提交到本地库8. 查看git工作区和暂存区的状态9. 查看历史命令(1)分页查看(2)长索引方式(3)短索引方式(4)短索引+步数方式10. 前进或者后退版本(1)均重置方式(2)暂存区、本地库重置方式(3)仅本地库重置方式11. 比对工作区和暂存区12. 比较暂存区和本地库
2022-04-14 02:23:42 3946
原创 新版本代码自动生成(MybatisPlus-generator) 代码示例+问题解决
虽然MybatisPlus官网上已经给出了新版本代码生成器的核心依赖和核心代码,但对于没接触过的小伙伴还是比较困难上手😭,本文将展现如何使用MybatisPlus-generator快速生成代码。目录1. 所需依赖✅2. 核心代码✅3. 遇到的问题🎐① Cannot resolve symbol 'FastAutoGenerator'② NoClassDefFoundError:freemarker/template/Configuration③ java.sql.SQLException: No s.
2022-03-26 17:06:26 15408 4
原创 IDEA输出带有颜色的语句
目录一、遇到的情况:二、解决方法:三、工具类展示效果:四、工具类代码:一、遇到的情况:有时候,我们需要打印日志来进行排错,但是有时候程序运行起来,日志可能会非常非常多,找到我们打印的那句话有时候会比较困难。二、解决方法:如果说在非常非常多的日志中,能有效提升我们定位输出的语句的方式,莫过于对打印的语句进行颜色显示,这样也就方便我们定位所输出的内容是什么。三、工具类展示效果:只需调用PrintUtil类里的printMyColor方法即可!四、工具类代码:package com.exam
2022-01-23 21:28:20 9962
原创 自学笔记-java多线程
目录1. 继承 Thread 类实现2. 实现Runnable接口3. 实现callable接口1. 继承 Thread 类实现① 继承Thread类② 重写run()方法③ 调用start()方法开启线程package com.example.myjava.javaMultithreading;/** * @Description: 多线程继承Thread类的实现 * @Author: Hanzao * @Date: 2022/01/14/17:10 */public cla
2022-01-14 23:47:17 112
原创 Vue简易注册页面+发送验证码功能的实现
目录1. 效果展示2. 增强版验证码及邮件推送管理(见以后的博客)3. 大致思路4. 前期准备5. 前端代码6. 后端① 主要的依赖② 正则校验邮箱工具类③ Redis的set和get工具类④ 核心service层代码1. 效果展示2. 增强版验证码及邮件推送管理(见以后的博客)3. 大致思路用户角度分析一下注册时候的步骤:填写自己的邮箱号点击“发送验证码”按钮邮箱中收到验证码填写其余注册信息并填写验证码注册成功!系统设计者角度分析一下步骤:系统随机生成六位数根据用户提
2021-11-27 23:44:02 32041 8
原创 Vue简易登陆页面
效果展示Vue代码<template> <div> <div class="login-box"> <h2>登录系统</h2> <form> <div class="user-box"> <input type="text" name="" required="" v-model="username"> <la
2021-11-22 15:19:00 40871 5
原创 自学笔记-链式存储的基本操作(慢慢写)
目录前言前言线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。为了简历数据元素之间的线性关系,对每个链表结点,除存放元素自身的信息外,还需存放一个指向其后继的指针。其中:data为数据域,存放数据元素;next为指针域,存放其后继结点的地址。虽说单链表可以解决顺序表需要大量连续存储单元的缺点,但是,其附带的指针域,也存在着浪费储存空间的缺点。...
2021-10-24 23:13:23 25873
原创 自学笔记-SpringBoot集成ElasticSearch
Node js查看环境变量和版本打开访问测试!安装淘宝镜像查看cnpm是否真安装成功下载依赖启动访问解决跨域问题连接变绿!Kibana可以将es的数据通过友好的页面展示出来 ,提供实时分析的功能。可以见到,默认端口 5601访问进入页面访问测试将ik放入ElasticSearch中重启es,发现加入插件(ik)ik_smart 最少切分ik_max_word 最细粒度划分ik分词器增加自己的配置字典:编写自己的配置文件,注入到扩
2021-08-12 22:56:15 25655 1
原创 自学笔记-顺序表的基本操作
#include<stdio.h>#include<stdlib.h>#include<string.h>#define InitSize 10typedef struct{int *data;int length;int maxsize;}SeqList;void InitList(SeqList &L){L.data = (int *)malloc(sizeof(int)*InitSize);L.length = 0;L.maxsize
2021-08-01 00:46:43 24628
原创 自学笔记-Swagger2
目录1、简介2、导入需要的相关依赖3、编写自己的controller类4、在config中配置Swagger5、测试运行6、配置Swagger7、Swagger配置扫描接口8、如何只在生成环境中使用9、配置API文档的分组10、一些常用注解1、简介Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服
2021-07-04 19:13:23 24686
原创 Java读写csv文件操作
内容:将csv(至少三个字段)里面的数据进行读的操作,将数据读取到pojo类组成的List中,然后按照某种要求进行排序,最后将排序后的结构写入另一个csv文件当中。具体代码:csv文件:需要依赖:Pojo类package com.example.demo.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructor
2021-07-01 22:52:40 29124
原创 自学笔记 -SpringBoot+Thymeleaf+MybatisXML版本
目录前言1、需要依赖2、application.properties3、Mysql数据里的数据4、管理员登陆流程:①查询所有用户流程②添加新用户流程③修改用户流程④删除用户流程前言SpringBoot主要用来简化使用Spring的难度和繁重的XML配置,它是Spring组件的一站式解决方案,采取了习惯优于配置的方法。通过.properties或者.yml文件替代了Spring繁杂的XML配置文件,同时支持@ImportResource注解加载XML配置。Spring Boot还提供了嵌入式HTTP服务
2021-06-21 00:20:12 24869
原创 自学笔记-使用MyBatis建立数据库基本连接
流程一、建立自己的数据库二、maven配置三、application.properties配置数据库连接和设接口绑定四、建立user类(pojo里),使用lombok创建有参无参构造方法五、UserMapper配置文件六、UserController类七、通过url访问成功!一、建立自己的数据库二、maven配置三、application.properties配置数据库连接和设接口绑定四、建立user类(pojo里),使用lombok创建有参无参构造方法五、UserMapper配置文件
2021-06-10 20:25:55 22565
原创 上海市计算机三级《信息技术与数据库技术》(2019) 答案+思路
2019年 上海市计算机三级《信息技术与数据库技术》操作题部分:(一)信息系统设计(本题3小题,共15分)信息系统设计-答案(二)数据库管理系统应用(本大题2道小题,共22分)1.数据库创建(18分)2.数据库管理(4分)(三)SQL语句(本大题6道小题,每小题3分,共18分)1.查询出品年份在2014年以后的电影信息。2.查询"复仇者联盟"系列电影的评价信息。3.查询所有参与了电影评价的用户信息。4.按片名统计电影评价的平均评分,并按平均评分降序排列。5.将用户编号(UserID)为'08'的电影评价记录
2020-11-20 21:20:23 28675
原创 已从数据文件records.txt中读取学生信息,建立了带头结点的学生链表。编写int count(LinkNode* head,int sex)......
已从数据文件records.txt中读取学生信息,建立了带头结点的学生链表。(1)编写一个函数 int count(LinkNode* head,int sex); 功能是统计学生链表中性别为sex参数(0为男生,1为女生)的人数并返回该值。(2)编写一个函数 double getMax(LinkNode* head); 功能是统计学生链表中最高的身高并返回该值。(3)编写一个函数 void deleX(LinkNode* head, int sex); 功能是删除学生链表中性别为sex参数(0为男生
2020-08-02 19:13:31 29913
原创 已创建了一个包含学生学号、身高、性别的学生身高信息表并输出到屏幕,学生信息从records.txt文件读取。 编写一个函数 void reverse(Seqlist *lp); 功能是对已建立的学生身
已创建了一个包含学生学号、身高、性别的学生身高信息表并输出到屏幕,学生信息从records.txt文件读取。(结构体数组版本)(1)30’ 编写一个函数 void reverse(Seqlist *lp); 功能是对已建立的学生身高信息表进行倒置,结果输出在屏幕。(2)30’ 编写一个函数 double avg(Seqlist *lp, int sex); 功能是统计某性别学生(0为男生,1为女生)的平均身高并返回该值。(3)40’ 编写一个函数 void deleX(Seqlist *lp, int
2020-08-01 19:52:02 31649 2
原创 数据结构前言练习
数据结构实验报告(预备实验)数据结构实验报告(预备实验)预备实验:C语言知识回顾任务一:平均值和最近元素下标任务二:结构体数组排序数据结构实验报告(预备实验)预备实验:C语言知识回顾任务一:平均值和最近元素下标题目要求:输入n个整数,输出其中与平均值最接近的元素的值及下标。要求定义下面功能函数,并在main函数中调用这些函数实现题目要求的功能:1.double getAvg(int a[], int n)功能:求数组a中n个数的平均值。2.int getIndex(int a[], int
2020-06-29 17:15:04 29164 1
Xftp-MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件
2022-12-22
nslicense.dll
2022-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人