自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

半路凉亭

一壶茶、一行代码、一段旅程

  • 博客(78)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Eclipse 设置try-cacth 默认格式

其中NsRuntimeException是自定义的异常处理。这样设置后,打开代码补全功能,输入try回车就会默认显示设置的代码。

2023-11-24 16:21:50 418

原创 Spring Boot 自定义应用开发框架九——基本增删改查“低代码”框架初设计3 前后端交互 未完待续

前面已经把后端需要处理的逻辑大致梳理了一遍,至于通过ibatis拦截器如何拼装新的SQL,网上有很多教程,找度娘即可。前端需要解决的问题有几个:1.每一个分页列表需要哪些字段2.这些字段哪些可以显示,哪些可以查询,哪些可以排序3.用于搜索的字段如何指定 等于、不等于、大于、模糊、in 等搜索方式。

2023-03-30 17:13:09 945 1

原创 Spring Boot 自定义应用开发框架九——基本增删改查“低代码”框架初设计2

上一篇简单讲了下基础增、删、改、查基础操作的低代码处理的一种模式,而在实际项目中分页列表是最重要的一块,因为分页列表是每一个模块的切入点,基本所有的功能都是围绕分页列表展开,例如搜索、分组、导出、增、删、改等等。分页列表功能大家应该都是非常熟悉的,后端传给前端的数据就只有2类,一类是要展示的所有列表信息数据,另一类就是分页的基本属性数据,如总条数,当前页码等。一般我们都会定义一个Page对象专门用于分页数据的处理。

2023-03-25 16:03:54 849

原创 Spring Boot 自定义应用开发框架九——基本增删改查“低代码”框架初设计1

概述 因为最近一直在为公司搭建底层框架, 好久没有更新博客了,本次搭建的框架结构基本沿用的就是前面几篇博客所写的结构,最大的不同点是,为了让底层数据更加的纯粹,将后端开发拆成了2个服务,一个是接收前端的提交数据,进行业务上的处理,然后将处理后的数据再提交给另一个后端,姑且我们分别将这2个服务叫做“前台”与“中台”,也即一个完整的功能模块有3个服务,分别是前端、前台、中台。这样将后端拆分成前台,中台两个服务优劣势都比较明显。先说劣势:前后端沟通成本上升;简单模块的代码会有冗余(但随着需求的迭代,这点

2023-03-20 17:05:14 762 3

原创 SpringBoot 整合 websocket (六)—— 后端补充

前面的几篇文章将原始socketweb做了前后端封装,在实际项目中使用时如果是单对单的通讯已经是可以使用了,如果是在非单对单使用时,还是有一定问题的,例如有这样一个考试场景,当所有考生打开问卷时,每个考生在页面上的每一次操作都会实时发送到管理端的监控页面上,如每个考生正在做的题目序号,考生离开考试页面,切屏操作等。这个时候如果管理端的监控页面只在一个浏览器上的一个标签页里打开,前面所写就可以实现,但是如果需要在多个地方同时监控,那就有问题了,操作记录只会在一个页面上显示。下面还是以前面的对话聊天为例。

2022-11-01 23:27:54 704

原创 SpringBoot 整合 websocket (五)——前端封装补充

在上一篇文章里介绍了如果再前端进行websocket封装时,进行断网重连、心跳监测等,在最近梳理的时候发现在断网重连这块少考虑了一块,例如默认情况下,断网后前端会每隔3秒重新与服务器握手一次,共握手5次后就彻底断开,这在实际项目里就存在问题,例如实际需求中需要一旦超过握手总次数就执行新的功能,例如提示操作者或者将异常入库等。

2022-09-05 21:05:34 889

原创 SpringBoot 整合 websocket (四)——前端封装重连设置、心跳监测,服务器监测

上篇文章简单讲了下前端websocket的封装,实现了socket通讯的整个流程,但是并没有考虑正式使用过程中的安全性。例如服务器断线就会导致前端不断的去连接;而且有的浏览器在长时间不发送消息时也可能会断开,而一旦断开,下次发送消息时就会发送不成功。为了解决这些问题,我们就要限制重连的次数以及定时的去和后端socket通讯,以保证前后端始终在握手状态。.........

2022-08-25 22:31:26 2274 2

原创 SpringBoot 整合 websocket(三)——前端JS封装

前面两篇websocket的文章主要是讲的是springboot后端的开发,而前端这块还是用的原生状态下的代码,在实际应用中肯定是不会这样简单去写的,需要考虑到在不同项目中可以复用,以及可能在同一个项目里有多个功能都需要用到websocket ,那就更要考虑统一和复用了,否则每个程序员都按照自己的想法去写,后期维护将是一件很麻烦的事情,而且也无法保证程序的安全性。.........

2022-08-17 22:01:48 1359

原创 SpringBoot 整合 websocket (二)—— 部署Nginx\Tomcat

上一篇文章讲了最简单的springboot整合websocket的方式,用的测试案例也是直接访问内嵌的tomcat方式,但是在实际的项目中,前后端都是通过nginx代理的,且后端的项目也可能是独立部署到Tomcat中,而不是使用springboot内嵌的Tomcat,下面就分别讲一下websocket在nginx和tomcat部署的方式。...............

2022-08-15 22:28:55 4282

原创 SpringBoot 整合 websocket(一)

websocket的作用主要就是为了客户端和服务端通讯使用,既然是通讯,那么肯定有一些基本的参数,例如发送者、接收者,消息正文,消息发送时间等,这里可以定义一个消息体的对象。

2022-08-09 22:19:52 1612

原创 Spring Boot 自定义应用开发框架八—— 整体功能(持续更新中)

前面七篇文章将框架的基础功能简单梳理了一下,分为2类。框架的结构 元件库:主要是定义一些常用的工具类、底层的实体、抽象类等。 框架: 主要就是mvc的二次封装,统一的登录验证、事务的处理等等。这个也是整个框架的核心功能。框架一个完整的开发框架,除了前面提到的功能,至少还需要以下几个通用功能。分页日志默认数据的处理,创建者,创建时间,修改者,修改时间,特殊数据的加密,解密(性别、手机号、身份证号等,现在法律法规下,保存此类数据必须加密)页面流量控制路由权限(后台)数据权限

2022-01-26 13:54:49 388

原创 Spring Boot 自定义应用开发框架七——API在线接口文档 Knife4j

管理在线文档的插件有很多,例如swagger。我这里使用Knife4j,knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,更利于前后端使用。引入jar包 com.github.xiaoymin knife4j-spring-boot-starter 3.0.3配置文件@Configurationpublic class Knife4jConfiguration { @Bean public Docket defaul

2021-11-18 17:13:51 406

原创 Spring Boot 自定义应用开发框架六——用户认证授权之短信验证码登陆

上一篇文章写了使用spring security、oauth2、JWT 实现了最常用的帐号密码登陆功能,但是现在的对外的在线系统基本至少有2种登录方式,用的最多的就是短信验证码,此种方式的好处有很多,例如天然的可以知道用户的手机号_,下面我们就来利用自定义spring security的认证方式实现短信验证码登陆功能。功能逻辑1.用户通过手机获取短信验证码2.用户填写验证码,提交登陆3.系统判断用户的验证码是否正确,正确则登陆成功,失败则提示错误以上3点就是使用短信验证码登陆的基本流程判断,当然在

2021-09-23 23:00:07 785

原创 Spring Boot 自定义应用开发框架五——用户认证授权(Spring Security 、Oauth2、JWT)

一、用户认证授权在系统中最基础的就是用户登陆,一般系统用到的登陆有2种,分别是账号密码和手机验证码。本笔记以账号密码登陆为例,手机验证码登陆等整个框架基本搭好后再写。1.1 需求分析 用户使用一个系统其实就是访问系统里的每一个功能,在浏览器中对应的就是一个个网页。一个正常的系统,那么肯定存在有些网页不需要权限,所有人都能访问,例如首页,登录页面,找回密码页面等;有些页面则需要用户登陆后才能访问,例如管理页面等。那么这就需要给用户授权,当然根据项目的实际需求,授权也分为功能授权和数据授权,这2块就

2021-07-29 22:35:25 664

原创 Spring Boot 自定义应用开发框架四——创建数据表对象基类+统一事务处理

上一篇已经将mybatis\mybatis plus\数据库源初步集成完毕,还有很多细节没有处理,这章主要就是统一数据表对应的基类,以及统一事务处理。统一数据表对应的基类 在做项目时,我们都是要记录每条数据的创建时间,创建者,修改时间,修改者,当然这些在实际开发中都是自动完成的,不需要开发者自己去手动的写入(这块需要再次封装Dao层)。我这里统一每张表都有6个字段,分别是 ID(主键)、deleted(删除状态)、create_user_id(创建者)、create_date_time(创建时间)、c

2021-07-26 16:23:00 302

原创 springboot自定义应用开发框架三 —— 整合mybatis plus+集成druid+模版自动生成代码文件

框架结构 按照笔记一的做法,项目分为元件库、框架、项目开发,元件库和框架可以在不同的项目中重复使用,也即以后不同的项目只要引入这2个jar文件即可使用spring boot一系列的功能,项目只用专注于本身的业务即可,如本案例的结构如下 ![项目结构](https://img-blog.csdnimg.cn/20210708185753129.png#pic_center)## hn-component 元件库,也是最顶层的jar,主要是一些基础类和工具类## hn-framework

2021-07-08 19:06:18 285

原创 Spring Boot 自定义应用开发框架二—— 异常统一处理

接上一篇继续搭建项目,项目中的肯定有需要处理异常的地方,而再前后端分离的项目中,要将后台返回的数据统一格式提供给前端,前端才好统一处理信息,那么异常的处理也就必须统一。...

2021-06-15 23:01:07 132

原创 Spring Boot 自定义应用开发框架笔记一—— 基础:项目搭建

最近在做一个全新的平台项目,这个项目又要被拆分成多个子系统项目分配给不同的开发小组开发,因为是同一个平台下的项目,基础设置是统一的一套,而且为了后续不同的小组人员的无缝对接,基础框架和基础设置肯定是要y...

2021-06-11 09:06:11 232 2

原创 WinSCP之Windows与Windows之间传输文件

方法:WinSCP+ OpenSSH1.在Windows安装OpenSSH,PowerShell组织下的Win32-OpenSSH项目有提供编译好的windows版本。

2021-06-01 11:38:15 7302

原创 springboot集成redis高并发下同时保存获取字符串和对象时出现异常的解决办法

大家在用springboot集成redis保存数据时,除了会保存一些基础类型的数据,也一定会保存一些对象数据,例如登录用户的对象数据。redis本身也支持对象的获取与保存,只需要修改默认的序列化方式即可。而在开发过程中为了方便大家应该也会封装redis的工具类,以便方便redis的使用,我这里就简单的写一个工具类,一个是保存数据,2个读取数据,分别是字符串读取和对象读取,序列化则用Jackson2JsonRedisSerializer。工具类代码如下@Componentpublic cl

2021-04-30 15:29:55 698

原创 iText7 学习笔记3--目录

为PDF文档添加目录也是经常会用到的功能,itext做目录的思路一般有2种。第一种:先将正文文档生成出来,同时保存正文文件的每一个模块以及对应的页码,然后生成一个新的文档,同时读取正文文件,复制正文文件的每一页,并通过正文模块与对应的页码数生成目录第二种:先将正文文档生成出来,同时保存正文文件的每一个模块以及对应的页码,然后通过移动页面的方式生成目录,此方式在实际过程中当目录超过2页时会有问题。我的案例以第一种方式生成目录,简单起见,正文文件先生成好,总共有5个模块,6个页面,其中一个模块占了2

2021-04-21 23:05:56 1472 2

原创 iText7 学习笔记2--页眉页脚

创建PDF文档,页眉页脚是必不可少的一环,页面页脚的作用一般是会存放一些固定的信息,例如当前页面的章节名称,公司logo,页码等等,我这里以下图为例:位置: 1 : 显示当前页面的所在的版块名称,例如一本书的第几章等 2: 显示当前的用户名或作者之类 3:logo图片 4:当前页码一、事件 页眉页脚在每一页的布局和逻辑都是一致,除了页码需要跟着页面变动而改变。在itext7 提供了事件出来的方式。代码...

2021-04-13 23:00:34 3758 9

原创 iText7 学习笔记1-- 基础知识

最近在做一个项目,项目的需求主要是根据不同的考试系统得出一份考生的综合性报告,并且后期希望易于下载、打印,那么容易打印的格式,最好的肯定是Word和PDF。word在java中不是很好实现,而且word下载后也容易被修改(有利有弊),JAVA中实现pdf用的最多的是itext,目前最新的版本是7.1.14,以前使用的是5.2.X的版本,升级到7以后有不少的改变,而且以前使用的时候,主要是修改别人现成的代码,从来没有整体的去了解itext,这次因为是全新的项目,并且是专门用于生成报告的,所以打算做一个PDF的

2021-04-04 10:58:21 1664

原创 IntelliJ IDEA 自动给类和方法创建自定义注释模版

我们在编程中,注释是非常重要的一个环节,IDEA默认的注释只有几个,而且当时团队开发项目时,统一注释格式,是个非常好的约定和习惯。创建类模板1. 打开File–>settings–>Editor–>File and Code Templates ,选择Class,如下图红框所示2.选择“Includes”标签->File Header:在右边输入框中输入下面注释代码/*** ${Description}** @author ${USER}...

2021-02-18 17:45:28 428

原创 AJAX+JAVA实现带进度条切割上传大文件(可以改造成断点续传)

上传文件是常用的功能,以前由于网速、技术、电脑硬件各方面的原因导致通过web方式上传大文件是一件比较困难的事情,随着各方面的技术发展,大文件上传变的容易了。上传文件如果是小文件,以前都是把后台的设置修改成项目中允许的最大容量,一次性做文件上传即可,但这种方法用于上传大文件肯定是不可取的,不管是网速还是客户端浏览器都不支持这种情况。大文件上传之所以比较麻烦,主要问题就在于文件容量过大,那么如果我们可以将要上传的大文件在前端分块上传其实就能解决这个问题。上传大文件的流程: 前端将文件分块 ...

2020-12-09 15:47:44 457

原创 Electron 使用原生net提交数据到JAVA后台并上传文件

上传文件应该是除了提交数据以外最常用的一种功能了,上篇已经说了使用原生net提交数据,上传文件和提交数据主要有2点不同,1.请求头不同 2.要选择本地待上传文件。 下面就以上传图片为例。 一、前段html页面 创建一个很简单的表单,只有姓名,性别,个人备注3个字段, ID为uploadFilePath 的DIV : 选择图片后,文件的路径显示在这里 ID为img的span是图片上传成功后,将图片显示出来 <...

2020-09-23 17:48:40 1455

原创 Electron 使用原生net提交数据到JAVA后台

提交数据是系统中最常见的功能,如果是WEB,常用的几种方式不外乎是form表单的submit,又或者是jquery的ajax等,都跟表单有关。如果用Electron做桌面软件方式,虽然也可以用jQuery的方式,但存在跨域问题,虽然也可以通过配置文件的属性webSecurity解决(未测试,网上都是这样说的),但是总感觉不太好,所以就研究了下官网的文档,发现用NET就能可以提交数据,步骤如下。一、前端html表单<form id="hmForm"> <inp...

2020-09-21 21:58:22 1999

原创 Linux 下安装 Redis ,并以非root用户启动 (新版本)

一、下载Redis https://redis.io/download 将软件包上传到/data下二、查看gcc的版本是否在 5.3以上# gcc -v 版本是4.8.5 ,需要升级三、升级gcc版本yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils#长期生效echo "so......

2020-09-08 15:19:47 9418

原创 Linux 下nginx 日志按天分隔处理

nginx 的日志有2个文件,分别为访问日志(access.log) 和错误日志(error.log),访问日志会随着访问量的增加极速的变大,而且在一些云服务的负载均衡下,后台内网也会不停的有访问记录,例如阿里云(不知道在阿里云后台有没有设置的地方,没去研究)。而当访问日志太大,就会导致服务器性能降低。思路:每天凌晨1点将当前的日志文件名称加上日期,如“access-20200902.log”,然后创建新的access.log.一、用mv将原有的文件名称加上当天日期 例如按照前面的...

2020-09-02 09:55:32 845

原创 阿里云Linux挂载新磁盘

一、查看数据盘 (fdisk -l)查看磁盘情况,本次机器系统盘为vda:40G,数据盘为vdb:50G二、格式化数据盘mkfs.ext4 /dev/vdb1三、创建挂载目录如在mnt下创建目录datamkdir /mnt/data四、写入新分区信息echo /dev/vdb1 /mnt ext4 defaults 0 0 >> /etc/fstabcat /etc/fstab五、挂载分区挂载你刚分好的分区mount /dev...

2020-08-13 11:22:02 1087

原创 Linux 下开机自启动TOMCAT

一、安装JRE 请查看前面的博客《Linux安装JRE Server ——Linux安装配置JAVA(一)》二、安装TOMCAT /tomcat/tomcat8081三 、 编辑rc.local 文件 vim /etc/rc.d/rc.local 在文档结尾编写下面两句 export JRE_HOME=/java/jdk1.8.0_231 /tomcat/tomcat8081/bin...

2020-08-06 21:24:09 138

原创 Eclipse debug模式 进入Source not found.

最近新项目改用springboot框架开发,重新下载最新版的Eclipse,发现进入debug模式后,断点进入了编译后文件,提示“Source not found.”,在网上找了好久,最后终于解决了。点击“Run” -> "Debug Configurations" ,打开对话框 点击“source”标签,将 “Search for duplicate source files on the path” 前面的勾去掉。点击Add 按钮,选择“Java Project” ,选择自己的项.

2020-05-21 11:46:59 529

原创 Maven 依赖外部jar包 (以钉钉为例)

在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库。但是如果库文件是公司内部的库,或者在本地而不能通过远程repository下载,这种情况下,有两种方法可以满足需求(以钉钉小程序SDK为例)。方法一:将本地的jar文件安装到本地repository中,具体步骤如下:1、下载钉钉要用到的jar包,如我这里的taob...

2019-12-31 10:04:52 4228

原创 钉钉小程序坑点记录

由于系统场景的需要,从上周开始学习钉钉小程序,原以为有之前微信小程序的开发经验,以及一向对阿里API及文档的赞许,学习钉钉小程序会非常轻松,但是最后我发现我错了,在钉钉小程序的文档和工具面前,还是图样图森破。一、真机调试的坑 企业内部应用:在开发者后台创建好项目后,在工具中选择相应的项目,可以直接用手机扫描二维码调试,这个是没问题的。 第三方企业应用:(这里有大...

2019-12-24 11:33:49 1717 3

原创 Linux 安装redis (第一版,比较混乱,请看新版本)

一、下载redishttps://redis.io/downloadredis-5.0.5.tar.gz二、上传到服务器中/web三、解压 tar xzvf redis-5.0.5.tar.gz输入 cd redis-5.0.5输入 make#cd src#make install PREFIX=/web/rediscd ../ 回到redis...

2019-11-07 16:22:43 399

原创 Linux安装Nginx 设置SSL,并开机自启

一、先安装依赖 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel1、rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"2、以deb包安装的,可以用 dpkg -l 看到。如果是查找指定软件包,用 dpkg -l | grep "软件...

2019-11-07 16:14:33 470

原创 Linux安装配置TOMCAT 8.5 ——Linux安装配置JAVA(二)

延续上文,所有跟JAVA相关的程序都安装在web文件夹下1.使用xshell连接Linux2.使用xftp将tomcat上传到web文件夹下 (apache-tomcat-8.5.42.tar.gz)。3.输入 cd /web切换到安装包所在目录,4.输入 tar -zxvf apache-tomcat-8.5.42.tar.gz解压缩文件5.在bin中创建一个文件 seten...

2019-11-01 13:28:33 284

原创 Linux安装JRE Server ——Linux安装配置JAVA(一)

一、准备工作 下载jre:server-jre-8u231-linux-x64.tar.gz 打开 Xshell 5 连接Linux服务器,二、安装JRE 1、连接上服务器后,默认应该是在root文件夹下,回到根目录下,输入 cd / 2、自建目录 mkdir web 3、输入 cd web 4、使用xftp上传下载好的 JRE 压缩包...

2019-11-01 13:13:30 965

原创 TOMCAT 8.5 配置优化以及JVM配置(windows server)

下载官方的tomcat,我这里用的是TOMCAT 8.5.46,然后解压出来,解压后的目录如下图一、server.xml配置优化进入conf目录,打开server.xml 文件1. 找到<Executor name="tomcatThreadPool" .../>,将其修改如下<Executor name="tomcatThreadPool" name...

2019-10-11 10:11:58 3377

原创 微信小程序——表单验证插件WxValidate的二次封装(终极版 demo下载)

微信小程序表单验证前面的两篇文章做的效果总感觉都有点不太友好,第一篇里的效果是将错误信息通过对话框形式弹出来,这种形式在web形式下早已经淘汰了;第二篇是一次性全部显示所有的错误,然后3秒后自动消失,这种在极端情况下也不太好,例如我例子里的一页的表单个数非常多的情况下,可能后面的还没看到就消失了。所以最近又重新做了一版,最终版的效果如下图:错误信息一次性全部显示,可以通过点击信息框让其消失,将...

2019-09-05 14:57:55 784

websocket前端封装

websocket前端封装

2022-08-25

spark-md5.zip

JS插件 ,通过此插件可以获取文件MD5值,可用于断点续传大文件,文件MD5值插件的使用方法。AJAX断点续传大文件。

2020-12-09

Electron 使用原生net上传文件并同时提交数据到JAVA后台

Electron 使用原生net上传文件并同时提交数据到JAVA后台,结合node的fs.createReadStream 

2020-09-23

demo_008_validate.zip

微信小程序——表单验证插件WxValidate的二次封装(终极版)的样例demo,具体用法可以查看我写的博客:《微信小程序——表单验证插件WxValidate的二次封装(终极版)》 https://blog.csdn.net/zhuiyue82/article/details/100558144

2020-01-06

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

TA关注的人

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