自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (15)
  • 收藏
  • 关注

原创 每日三道面试题(2)

TCP四次挥手过程客户端发送一个带FIN标志的报文给服务器服务器接收到之后返回确认,之后若有数据要传输给客户端,则继续传输,传输完之后再发送一个带ACK和FIN标志的报文给客户端客户端接收之后返回确认为什么建立连接是三次握手,断开是四次建立连接的时候,服务器处于listen状态,收到客户端请求建立TCP连接的SYN报文之后,会在一个报文同时设置ACK和SYN然后返回给客户端断开连接的时候,服务器收到来自客户端断开连接的请求,然后会先发送ACK报文,这表明客户端到服务器的通信连接断开,客户

2022-04-20 11:15:41 291

原创 每日三道面试题(1)

TCP连接为什么要三次握手换种问法:为什么TCP客户端还要发送最后一次确认?防止服务器收到之前已经失效的连接请求,从而产生错误如果只有两次握手的话,存在这么一种情况,客户端向服务器发送TCP连接请求,但是因为网络原因,滞留了,服务器迟迟没有收到。然后客户端看服务器没有响应确认,就又发送了一次TCP连接请求,之后通过两次握手建立了通信,但是这时候服务器又收到了那条被滞留的TCP连接请求,从而产生错误。如果是三次握手,也就是说客户端会最后发一次确认给服务器,那么就算那条服务器接收了那条滞留的TCP连接请

2022-04-19 10:59:47 783

原创 poi Excel导出通用类

package com.hikvision.ids.cm.utils.ExcelUtil;import com.hikvision.ids.cm.annotation.OnlineExcelColumn;import org.apache.commons.collections4.CollectionUtils;import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import

2021-11-09 16:16:44 220

原创 map组成的list转成bean组成的list

/** * 将一个map组成的list转成实体类bean组成的list * @param mapList 存了map对象的list * @param clazz 需要将这些map转成哪个实体类对象 * @return */ public static <T> List<T> convertMapListToBeanList(List<Map<String,Object>> mapList,Cla...

2021-11-09 15:56:11 871

原创 java中常用的方法

java工作中常用的方法StringUtils(org.apache.commons.lang3)isEmpty(str)isBlank(str)isAnyBlank(str)MapputIfAbsentDateStringUtils(org.apache.commons.lang3)isEmpty(str)判断字符串是否为 “” , null// Empty checks //---------------------------------------------------------

2021-11-06 20:35:55 78

原创 Calendar类的使用

try{ //endTime Calendar cal = Calendar.getInstance(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date endTime = formatter.parse("2021-1-1"); cal.setTime(endTime); ...

2021-10-24 15:48:00 128

原创 仿牛客社区开发(登录模块-显示登录信息)

仿牛客社区开发(登录模块-显示登录信息)概述拦截器示例定义拦截器配置拦截器拦截器的应用配置拦截器 - LoginTicketInterceptor配置拦截器 - WebMvcConfig补充概述拦截器在本项目中的应用:服务器通过客户端request请求头中的cookie获取ticket(preHandle)根据ticket从login_ticket表中获取LoginTicket凭证示例(preHandle)根据登录凭证中的user_id找到对应user(preHandle)将user数据

2021-10-07 19:23:22 370

原创 仿牛客社区开发(登录模块-登录及退出功能)

仿牛客社区开发(登录模块-登录及退出功能)概述数据访问层entity - LoginTicketdao - LoginTicketMapper业务层UserService - login()控制层CommunityConstantLoginController - login()视图层概述数据库 - 登录凭证表,数据访问层entity - LoginTicketdao - LoginTicketMapper直接使用注解写sql,updateStatus的sql是动态sql(演示动态sql如

2021-10-05 17:13:43 511 2

原创 仿牛客社区开发(登录模块-生成验证码)

仿牛客社区开发(登录模块-生成验证码)概述kaptcha配置类 - KaptchaConfigcontroller - /kaptcha前端 - login.html概述kaptcha依赖<!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha --><dependency> <groupId>com.github.penggle</groupId> <

2021-10-05 15:50:45 257 1

原创 仿牛客社区开发(登录模块-会话管理)

仿牛客社区开发(登录模块-会话管理)概述http无状态http cookiesession示例cookie示例设置cookie获取cookiesession示例创建session对象获取session问题分布式部署时,为什么不用session?概述http无状态https://developer.mozilla.org/zh-CN/docs/Web/HTTP/OverviewHTTP是无状态的:在同一个连接中,两个执行成功的请求之间是没有关系的。这就带来了一个问题,用户没有办法在同一个网站中进行连续

2021-10-05 15:14:55 424

原创 仿牛客社区开发(登录模块-注册功能)

仿牛客社区开发(登录模块-注册功能)概述提交注册数据CommunityUtilUserService - registerhtml激活邮件controller - LoginControlleroperate-result.htmlregister.html激活注册账号CommunityConstantUserService - activationLoginController - activation概述点击注册并校验成功,会返回注册成功待激活的页面,然后,页面跳转到首页,服务端发送激活邮件,点击激

2021-10-05 10:09:12 447

原创 仿牛客网社区开发(登录模块-邮件发送)

仿牛客网社区开发(登录模块-邮件发送)概述spring mail导入依赖邮箱参数设置MailClient - JavaMailSender发送html邮件概述希望实现的效果:登录模块-注册功能,用户注册后,发送激活账户邮件(带激活码)使用新浪邮箱,开启smtp服务(发邮件)spring mail导入依赖<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail --&

2021-10-01 15:16:39 393

原创 仿牛客网社区开发(开发社区首页)

仿牛客网社区开发(开发社区首页)概要概要涉及的数据库表-帖子讨论表user_id:表示帖子由哪个用户发布,关联user表

2021-09-30 10:24:30 750 1

原创 @Transactional注解失效的可能

@Transactional注解失效的可能事务方法没用public修饰数据库存储引擎不支持事务(myisam不支持事务)同一个类中普通方法调用事务方法 (必须是类间调用)异常是check类型,如果check类型的异常也想回滚,使用如下注解@Transactional(rollbackFor=Exception.class) 方法内通过 try catch 捕获了异常(当出现异常,@Transactional会捕获异常,之后回滚,如果通过 try catch 事先捕获,就会失效)如下:

2021-09-28 09:39:10 101

原创 免疫优化算法在物流配送中心选址中的应用 C++ 实现

免疫优化算法在物流配送中心选址中的应用 C++ 实现简介头文件mainyi.hmain函数popinit函数loadData函数loadData函数fitness函数concentration函数excellence函数bestselect函数select函数cross函数mutate函数incorporate函数结果简介为了完成老师布置的作业,找了一个案例来自《matlab智能算法30个案例》,选了免疫优化算法在物流配送中心选址中的应用,因为要求用C/C++写,但是在网上翻遍都没有相应的代码,所以只能

2021-07-29 21:15:29 1165

原创 vue入门

vue入门项目结构项目逻辑项目结构build:跟打包工具webpack有关的代码config: 配置信息node_modules:当前项目所有依赖src:之后编写代码的文件夹static:一些静态资源文件其他:.babelrc是babel的配置文件(做语法转义等),index.html是首页内容,package.json是npm依赖包的声明信息,package-lock.json依赖的详细信息项目逻辑index.html是我们的主入口页面,只有一个div标签id是appsrc中m

2021-07-29 21:06:04 99

原创 ubuntu18配置静态ip

ubuntu18配置静态ip配置静态ip配置DNS其他配置静态ipvim /etc/network/interfaces# interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback#配置ens33网卡 auto ens33iface ens33 inet staticaddress 192.168.58.134netmask 255.255.255.0gateway 192.168.5

2021-07-27 16:24:15 728

原创 RabbitMQ延时队列

RabbitMQ延时队列基于TTL的实现在消息中设置延时在队列中设置延时基于插件的实现问题应用场景:饿了么下订单,若没有支付,会显示个支付倒计时,若倒计时结束,还没支付,则该消息会被送入延时队列处理两种实现方式:1.基于参数TTL(可以在消息设置或者在队列设置),并绑定到对应的死信交换机 2.使用插件,获得一个有延迟功能的Direct交换机两种实现方式的区别:基于TTL的实现在消息中设置延时 //死信消息 设置TTL时间AMQP.BasicProperties properties =

2021-07-25 16:41:09 369

原创 RabbitMQ死信队列

RabbitMQ死信队列实战模拟ttl过期消费者C1生产者Producer结果展示消费者C2队列达到最大长度消息被拒结果展示定义:死信指的是无法被消费的消息,死信队列即存放死信的队列来源:消息TTL过期、队列达到最大长度、消息被拒绝实战一个生产者(producer),两个消费者(C1、C2),生产者通过direct类型的normal_exchange(bindingKey为zhangsan),将消息发布到normal-queue,C1从该队列中拿到消息,正常消费,若normal-queue中消息

2021-07-24 17:03:30 187

原创 navicat远程登录docker中mysql失败

navicat远程登录mysql失败问题描述解决过程问题描述远程登陆docker下的mysql容器失败解决过程首先排除防火墙的原因,因为我的ubuntu系统没有启动防火墙,然后想着可能是mysql权限问题,于是进入mysql容器docker exec -it mysql /bin/bash进入之后输入 mysql -u root -p ,密码输入错误,一脸懵逼因为之前在启动容器的时候就设置了环境变量MYSQL_ROOT_PASSWORD=root,按理来说密码应该是root才对,但是密码

2021-07-23 16:25:51 356 1

原创 docker中mysql数据库闪退的原因

docker中mysql数据库闪退的原因问题描述可能原因问题描述在dockers中启动mysql容器,使用docker ps 发现没有正在启动的容器,使用 docker ps -a 查看历史容器,发现mysql容器已经退出可能原因启动时,没有添加环境变量MYSQL_ROOT_PASSWORD=rootdocker run -d -p 3307:3307 --name mysql -v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:

2021-07-23 10:23:51 1594 1

原创 Restful API 设计与实现

Restful API 设计与实现简介Restful api设计规范简介在实际的项目开发中,进行至接口设计阶段时,后端开发人员和前端开发人员都会参与其中,根据已制定的规范对接口进行设计和返回数据格式的约定(不同项目组规范可能不同),但是像前一个实验中的情况应该不会出现,接口的请求方式不会仅仅只有 GET 方式,返回结果的数据格式反而会比较统一,返回结果一般会进行封装。本篇文章将会对 api 设计及数据规范进行简单的介绍,之后结合实际案例对数据交互进行编码实现。Restful api设计规范目前比

2021-05-24 14:28:56 410

原创 Spring Boot中的事务处理

Spring Boot中的事务处理数据库事务介绍未使用SpringBoot时的事务配置SpringBoot中的事务控制SpringBoot事务管理器自动配置Transactional 事务实现机制总结数据库事务介绍数据库事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成

2021-05-24 10:11:43 778 1

原创 Mybatis-Generator使用

Mybatis-Generator使用Mybatis-Generator介绍整合Mybatis-plus添加依赖新增MyBatis-Generator生成代码将DAO接口注册进IOC容器Mybatis-Generator介绍MyBatis Generator 是 MyBatis 官方提供的代码生成器插件,可以用于 MyBatis 和 iBatis 框架的代码生成,支持所有版本的 MyBatis 框架以及 2.2.0 版本及以上的 iBatis 框架。在前文中我们也介绍了如何使用 MyBatis 进行数

2021-05-24 10:03:01 142

原创 SpringSecurity 配置

SpringSecurity配置使用注解@EnableWebSecurity 启用该配置。SpringSecurity配置重点在于继承WebSecurityConfigurerAdapter这个类,重写里面的configure方法。重载configure,写关于认证的内容,密码需要加密

2021-05-21 10:19:59 54

原创 springboot整合mybatis,简单详细

springboot整合mybatis找到Mybatis Spring Boot Starter 依赖数据库连接配置对照user表写实体类写与数据库交互的接口UserMapper在UserMapper.xml写sql写UserController结果找到Mybatis Spring Boot Starter 依赖然后在pom.xml中导入该依赖。数据库连接配置对照user表写实体类写与数据库交互的接口UserMapper在UserMapper.xml写sql此处可直接用注解,但是本人习

2021-05-20 13:45:14 69

原创 ssm框架整合案例,详细简单易懂

ssm框架整合1.准备工作1.1 pom.xml中导入相关依赖1.2 项目初步结构2.整合mybatis2.1 创建mybatis和spring核心配置文件2.2 关联数据库2.3 构建实体类pojo2.4 写接口操作数据库2.5 BookMapper.xml中写sql2.6 将BookMapper.xml 绑定到mybatis配置文件1.准备工作1.1 pom.xml中导入相关依赖<?xml version="1.0" encoding="UTF-8"?><project xml

2021-05-19 11:14:38 621

原创 C语言文件操作练习

C语言文件操作练习fscanf和fprintffscanf和fprintf老师要统计所有同学的c语言成绩总分和排名,但是他又懒得算,就让你写个程序来帮他算。他将同学们的成绩存入了文件score.txt中,下面是score.txt的样例。Ultraman 113 10 10 70Zhanghua 15 5 15 90Tom 40 10 15 70Pikachu 99 0 0 80Doraemon 10 15 15 80每行分别表示每名同学的姓名、杭电ACM刷题数,课题表现分,实验分和笔试成绩。

2020-10-03 15:06:24 276

原创 C语言画圆(详细解释易懂)

代码#include<iostream>#include<cmath> using namespace std;int main(){ for(double y=10;y>=-10;y-=1) { for(int i=0;i<10;i++) cout<<" "; double x=2.5*(10-sqrt(100-y*y)),t; for(t=0;t<x;t+=1) cout<<"

2020-10-02 16:03:22 11400 1

原创 用C/C++绘制出余弦曲线和正弦曲线(不使用库函数)

- 余弦函数- 正弦函数#include<iostream>#include<cmath>#define PI 3.1 #define tow_PI 6.2using namespace std;int main(){ double y,x; for(y=1;y>0;y-=0.1) { double cx=asin(y); for(x=0;x<cx;x+=0.1) cout<<" ";

2020-10-01 15:57:58 1918

原创 hdu2097

#include<iostream>#include<stdio.h>using namespace std;int sum(int num,int x){ int sum=0; while(num) { sum+=num%x; num/=x; } return sum;}int main(){ int num; while(scanf("%d",&num)&&num) { if((sum(num,10)==sum(n

2020-09-27 14:48:18 111

原创 hduoj_2029

hduoj_2029#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){ int n; char str[50]; while(scanf("%d",&n)!=EOF) { getchar(); while(n--) { gets(str); int i,j; for(i

2020-09-26 19:32:35 65

原创 hdu_oj2028

hdu_oj2028#include<iostream>#include<stdio.h>#include<vector>#include<algorithm>using namespace std;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int n; while(scanf("%d",&n)!=EOF) { vector<long

2020-09-26 19:20:42 146

原创 Position定位

常用的Positon定位前言staticabsoluterelativefixedsticky前言知识点来源于B站up CodingStartup视频链接staticHTML里面所有元素的position默认值都是static。static会跟随HTML排版的流程移动。top,left,right,bottom设定值不会生效。absoluteabsolute元素会固定在所设定的位置,不会因html排版的流程移动,如下图,蓝色div并没有影响到absolute元素的位置,但如果absol

2020-08-29 12:21:11 122

原创 5个CSS常用的单位

5个CSS常用的单位前言pxemremvw&vhvmin&vmax前言知识点来源于b站up CodingStartup 视频链接px是一个绝对单位,一个px是一个点的意思,1920*1080这个16:9的解像度,代表你的荧幕横向由1920个光点,直向由1080个光点组成,1px就是一个光点的大小。当我们用px这个绝对单位设定字体大小以及行距时,通常在更改字体大小时要同时更改行距大小,否则会出现行距过小或过大的情况。em它是一个相对的单位,是基于目前这个容器的大小设定再根据

2020-08-28 16:30:24 300

原创 flexbox布局

flexbox布局前言flex containerflex-directionjustify-content&align-itemsflex-wrapflex-flow(flex-direction+flex-wrap)align-contentflex itemorderalign-selfflex-basisflex-growflex-shrink前言博主前端小白,正在通过看视频学习前端,这次关于flexbox布局的相关知识点来源于b站up CodingStartup,原视频链接在下方。h

2020-08-28 12:12:08 484

原创 JS运行原理

JS运行原理1Javascript借鉴了C语言的基本语法,Java语言的数据类型和内存管理,借鉴了Schema语言的函数式子编程,同时又借鉴了Self语言,使用了基于原型prototype的继承机制。所以javascript语言实际上是这两种语言风格的混合产物。在Js中我们只需定义一个变量,然后可以给这个变量赋任何类型的值,但这在C++中不一样,在C++中我们必须提前声明变量类型,并且还要付对正确的值。所以我们称javascrirpt是一门动态类型语言,而C++是静态类型语言。由于提供的信息太少,J

2020-08-27 17:56:42 54

空空如也

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

TA关注的人

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