Springboot
文章平均质量分 80
半路凉亭
一位程序老猿
展开
-
Spring Boot 自定义应用开发框架九——基本增删改查“低代码”框架初设计3 前后端交互 未完待续
前面已经把后端需要处理的逻辑大致梳理了一遍,至于通过ibatis拦截器如何拼装新的SQL,网上有很多教程,找度娘即可。前端需要解决的问题有几个:1.每一个分页列表需要哪些字段2.这些字段哪些可以显示,哪些可以查询,哪些可以排序3.用于搜索的字段如何指定 等于、不等于、大于、模糊、in 等搜索方式。原创 2023-03-30 17:13:09 · 1033 阅读 · 1 评论 -
Spring Boot 自定义应用开发框架九——基本增删改查“低代码”框架初设计2
上一篇简单讲了下基础增、删、改、查基础操作的低代码处理的一种模式,而在实际项目中分页列表是最重要的一块,因为分页列表是每一个模块的切入点,基本所有的功能都是围绕分页列表展开,例如搜索、分组、导出、增、删、改等等。分页列表功能大家应该都是非常熟悉的,后端传给前端的数据就只有2类,一类是要展示的所有列表信息数据,另一类就是分页的基本属性数据,如总条数,当前页码等。一般我们都会定义一个Page对象专门用于分页数据的处理。原创 2023-03-25 16:03:54 · 894 阅读 · 0 评论 -
Spring Boot 自定义应用开发框架九——基本增删改查“低代码”框架初设计1
概述 因为最近一直在为公司搭建底层框架, 好久没有更新博客了,本次搭建的框架结构基本沿用的就是前面几篇博客所写的结构,最大的不同点是,为了让底层数据更加的纯粹,将后端开发拆成了2个服务,一个是接收前端的提交数据,进行业务上的处理,然后将处理后的数据再提交给另一个后端,姑且我们分别将这2个服务叫做“前台”与“中台”,也即一个完整的功能模块有3个服务,分别是前端、前台、中台。这样将后端拆分成前台,中台两个服务优劣势都比较明显。先说劣势:前后端沟通成本上升;简单模块的代码会有冗余(但随着需求的迭代,这点原创 2023-03-20 17:05:14 · 849 阅读 · 4 评论 -
SpringBoot 整合 websocket (五)——前端封装补充
在上一篇文章里介绍了如果再前端进行websocket封装时,进行断网重连、心跳监测等,在最近梳理的时候发现在断网重连这块少考虑了一块,例如默认情况下,断网后前端会每隔3秒重新与服务器握手一次,共握手5次后就彻底断开,这在实际项目里就存在问题,例如实际需求中需要一旦超过握手总次数就执行新的功能,例如提示操作者或者将异常入库等。原创 2022-09-05 21:05:34 · 907 阅读 · 0 评论 -
SpringBoot 整合 websocket(三)——前端JS封装
前面两篇websocket的文章主要是讲的是springboot后端的开发,而前端这块还是用的原生状态下的代码,在实际应用中肯定是不会这样简单去写的,需要考虑到在不同项目中可以复用,以及可能在同一个项目里有多个功能都需要用到websocket ,那就更要考虑统一和复用了,否则每个程序员都按照自己的想法去写,后期维护将是一件很麻烦的事情,而且也无法保证程序的安全性。.........原创 2022-08-17 22:01:48 · 1415 阅读 · 0 评论 -
SpringBoot 整合 websocket (二)—— 部署Nginx\Tomcat
上一篇文章讲了最简单的springboot整合websocket的方式,用的测试案例也是直接访问内嵌的tomcat方式,但是在实际的项目中,前后端都是通过nginx代理的,且后端的项目也可能是独立部署到Tomcat中,而不是使用springboot内嵌的Tomcat,下面就分别讲一下websocket在nginx和tomcat部署的方式。...............原创 2022-08-15 22:28:55 · 4357 阅读 · 0 评论 -
SpringBoot 整合 websocket(一)
websocket的作用主要就是为了客户端和服务端通讯使用,既然是通讯,那么肯定有一些基本的参数,例如发送者、接收者,消息正文,消息发送时间等,这里可以定义一个消息体的对象。原创 2022-08-09 22:19:52 · 1709 阅读 · 0 评论 -
Spring Boot 自定义应用开发框架八—— 整体功能(持续更新中)
前面七篇文章将框架的基础功能简单梳理了一下,分为2类。框架的结构 元件库:主要是定义一些常用的工具类、底层的实体、抽象类等。 框架: 主要就是mvc的二次封装,统一的登录验证、事务的处理等等。这个也是整个框架的核心功能。框架一个完整的开发框架,除了前面提到的功能,至少还需要以下几个通用功能。分页日志默认数据的处理,创建者,创建时间,修改者,修改时间,特殊数据的加密,解密(性别、手机号、身份证号等,现在法律法规下,保存此类数据必须加密)页面流量控制路由权限(后台)数据权限原创 2022-01-26 13:54:49 · 412 阅读 · 0 评论 -
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 · 433 阅读 · 0 评论 -
Spring Boot 自定义应用开发框架六——用户认证授权之短信验证码登陆
上一篇文章写了使用spring security、oauth2、JWT 实现了最常用的帐号密码登陆功能,但是现在的对外的在线系统基本至少有2种登录方式,用的最多的就是短信验证码,此种方式的好处有很多,例如天然的可以知道用户的手机号_,下面我们就来利用自定义spring security的认证方式实现短信验证码登陆功能。功能逻辑1.用户通过手机获取短信验证码2.用户填写验证码,提交登陆3.系统判断用户的验证码是否正确,正确则登陆成功,失败则提示错误以上3点就是使用短信验证码登陆的基本流程判断,当然在原创 2021-09-23 23:00:07 · 863 阅读 · 0 评论 -
Spring Boot 自定义应用开发框架五——用户认证授权(Spring Security 、Oauth2、JWT)
一、用户认证授权在系统中最基础的就是用户登陆,一般系统用到的登陆有2种,分别是账号密码和手机验证码。本笔记以账号密码登陆为例,手机验证码登陆等整个框架基本搭好后再写。1.1 需求分析 用户使用一个系统其实就是访问系统里的每一个功能,在浏览器中对应的就是一个个网页。一个正常的系统,那么肯定存在有些网页不需要权限,所有人都能访问,例如首页,登录页面,找回密码页面等;有些页面则需要用户登陆后才能访问,例如管理页面等。那么这就需要给用户授权,当然根据项目的实际需求,授权也分为功能授权和数据授权,这2块就原创 2021-07-29 22:35:25 · 710 阅读 · 0 评论 -
Spring Boot 自定义应用开发框架四——创建数据表对象基类+统一事务处理
上一篇已经将mybatis\mybatis plus\数据库源初步集成完毕,还有很多细节没有处理,这章主要就是统一数据表对应的基类,以及统一事务处理。统一数据表对应的基类 在做项目时,我们都是要记录每条数据的创建时间,创建者,修改时间,修改者,当然这些在实际开发中都是自动完成的,不需要开发者自己去手动的写入(这块需要再次封装Dao层)。我这里统一每张表都有6个字段,分别是 ID(主键)、deleted(删除状态)、create_user_id(创建者)、create_date_time(创建时间)、c原创 2021-07-26 16:23:00 · 342 阅读 · 0 评论 -
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 · 295 阅读 · 0 评论 -
Spring Boot 自定义应用开发框架二—— 异常统一处理
接上一篇继续搭建项目,项目中的肯定有需要处理异常的地方,而再前后端分离的项目中,要将后台返回的数据统一格式提供给前端,前端才好统一处理信息,那么异常的处理也就必须统一。...原创 2021-06-15 23:01:07 · 147 阅读 · 0 评论 -
Spring Boot 自定义应用开发框架笔记一—— 基础:项目搭建
最近在做一个全新的平台项目,这个项目又要被拆分成多个子系统项目分配给不同的开发小组开发,因为是同一个平台下的项目,基础设置是统一的一套,而且为了后续不同的小组人员的无缝对接,基础框架和基础设置肯定是要y...原创 2021-06-11 09:06:11 · 262 阅读 · 2 评论 -
springboot集成redis高并发下同时保存获取字符串和对象时出现异常的解决办法
大家在用springboot集成redis保存数据时,除了会保存一些基础类型的数据,也一定会保存一些对象数据,例如登录用户的对象数据。redis本身也支持对象的获取与保存,只需要修改默认的序列化方式即可。而在开发过程中为了方便大家应该也会封装redis的工具类,以便方便redis的使用,我这里就简单的写一个工具类,一个是保存数据,2个读取数据,分别是字符串读取和对象读取,序列化则用Jackson2JsonRedisSerializer。工具类代码如下@Componentpublic cl原创 2021-04-30 15:29:55 · 778 阅读 · 0 评论 -
Spring Boot 定时任务五 :Quartz简单封装
通过前面几篇文章可以知道,quartz的shiy使用其实就是3个步数,即1)job - 任务-2)Trigger - 触发器3)Scheduler - 任务调度在实际项目中,一个项目里往往存在不同定时需求的任务处理,如果按照上一篇文章中的方法,那肯定是不太好的,我们可以将quartz封装成一个工具类来使用。一、修改服务层代码 修改上一篇使用到的UserService,新...原创 2019-02-13 13:45:13 · 995 阅读 · 0 评论 -
Spring Boot 定时任务四 :SpringBoot整合Quartz
通过上一篇,我们知道quartz的使用只需要3步,而springboot整合Quartz其实就是实现此3个步骤。一、pom文件新增jar<!-- Sprng tx 坐标--> <dependency> <groupId>org.springframework</groupId> <artifactId>sprin...原创 2019-02-12 15:03:34 · 549 阅读 · 0 评论 -
Springboot 入门:创建项目
一、进入官网https://start.spring.io/创建Maven 项目,选择语言和版本,点击“Switch to the full version.”,选择需要的插件。点击生成项目按钮,网站自动生成一个spring boot项目,并下载下来。二、导入到Eclipse后,项目结构如下1. Application.java项目启动文件,springboot...原创 2018-10-08 15:15:31 · 161 阅读 · 0 评论 -
Springboot 配置到独立的TOMCAT中运行
首先将pom.xml里的打包方式改为WAR。方式一1.添加servlet-api2.剔去掉springboot内置的tomcat3.新增一个类并继承SpringBootServletInitializer如下图:红框中的DemoApplication.class是自启动的类。方式二1.添加servlet-api2.剔去掉springboot内置的t...原创 2018-10-08 15:22:15 · 873 阅读 · 0 评论 -
Springboot 日志记录器 logback
logback是log4j的扩展,性能更优直接在项目的resources文件夹下新增logback.xml文件即可,内容如下:<?xml version="1.0" encoding="UTF-8" ?><configuration> <!--定义日志文件的存储地址勿在LogBack 的配置中使用相对路径 --> <propert...原创 2018-10-09 12:00:05 · 150 阅读 · 0 评论 -
Springboot 整合mybatis(一)
本案例中使用mysql数据库一、创建一张用户表二、使用mybatis-generator插件,生成数据表对应的XML、Dao文件和数据库对应的model文件上图是运行此插件需要的文件,a) src文件夹:存放要生成的XML和dao文件,也可以自定义,与generator.xml 文件中设置一致b) generator.xml 文件c) mybatis-gener...原创 2018-10-09 14:39:00 · 118 阅读 · 0 评论 -
Springboot 整合mybatis(二)
本篇详细介绍下每个文件的作用一、配置文件 application.yml 关键的参数是最后2个:mapper-locations: --存放mybatis对应的sql语句的XML文件的位置,这也是为什么上篇文章里说的此文件必须存放在resources目录下。type-aliases-package: 数据表对应的实体类文件的存放路径。PS:简单讲下yml格式的配置文件...原创 2018-10-10 10:16:00 · 656 阅读 · 0 评论 -
Springboot整合Redis(一) : :安装Redis
一。安装Redis1. redis官方下载地址:https://redis.io/download,redis 64位下载地址:https://github.com/ServiceStack/redis-windows,本人测试使用的是redis-64.3.0.503版本。2. 将Redis解压,例如放在H:\Java\redis下,打开命令窗口 3.启动服务命令 redis-se...原创 2018-10-22 17:01:12 · 1356 阅读 · 0 评论 -
Springboot整合Redis(二) :redis.windows.conf各项配置参数介绍
# 默认情况下,redis不是在后台模式运行的,如果需要在后台进程运行,把该项的值更改为yes,默认为no daemonize:是否以后台daemon方式运行 # 如redis服务以后台进程运行的时候,Redis默认会把pid写入/run/redis.pid文件组,你可以配置到其他文件路径。 # 当运行多个redis服务时,需要指定不同的pid文件和端口 pidfile:p...转载 2018-10-23 11:05:35 · 901 阅读 · 0 评论 -
Springboot整合Redis(三) : 整合Redis
一、POM.XML 依赖Redis包二、设置配置文件application.properties三、Redis缓存配置类四、Redis工具类@Componentpublic class RedisUtils { @Autowired RedisTemplate<String, Object> redisTemplate; /** * 写入缓存 ...原创 2018-10-23 11:49:44 · 251 阅读 · 0 评论 -
RabbitMQ(一) windows环境下安装RabbitMQ步骤
一、安装Erlang 软件 下载地址:http://www.erlang.org/downloads根据自己的操作系统的位数选择不同的版本。下载的软件:安装的步数跟普通软件一样,一路next就好了记住安装的路径,后面新增环境变量用到新增环境变量,ERLANG_HOME ,如下图找到path,双击,在最后加上%ERLANG_HOME%\bin;...原创 2018-11-12 11:07:47 · 242 阅读 · 0 评论 -
springboot 配置文件:多环境配置
在实际做项目的时候,至少有3个运行环境,开发环境、测试环境、生产环境。不同的环境下,存在不同的配置,例如数据库、下载、上传地址等。在以往的项目开发中,大多数情况下都是将项目放在不同的环境时再修改相应的配置文件,或者自己先将配置复制一份,然后覆盖一下,功能到是不麻烦,但是如果配置文件本身有改动,这样可能在下一次发布时就会忘记在正式环境下修改了,导致项目运行出问题。而springboot通过配...原创 2018-11-19 15:17:13 · 228 阅读 · 0 评论 -
SpringCloud : 创建高可用的服务注册中心(Eureka)(二) 进阶篇
上一篇文章《SpringCloud : 创建高可用的服务注册中心(Eureka)(一)》只是讲解了如果创建多个服务注册中心实例,并将客户端注册到服务中,并没有展示服务之间如何通信的功能。 下面通过生产者与消费者模式讲解两者之间如何通过注册中心通信。一、创建生产者项目 1) 将上篇中的客户端项目 “12-eureka-client” 拷贝一份,并...原创 2018-11-27 16:51:36 · 225 阅读 · 0 评论 -
Spring Boot 定时任务一 :Scheduled 定时任务器
Scheduled 定时任务器是Spring3.0 以后自带的一个定时任务器。如果只是使用一些简单的定时程序,使用自带的定时器即可。一、添加Scheduled坐标<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-suppo...原创 2019-02-11 14:14:23 · 232 阅读 · 0 评论 -
Spring Boot 定时任务二 :cron表达式
Cron 表达式是一个字符串,分为6 或7 个域,每一个域代表一个含义Cron 有如下两种语法格式:(1) Seconds Minutes Hours Day Month Week Year(2)Seconds Minutes Hours Day Month Week一、结构corn 从左到右(用空格隔开):秒 分 时 日期 月份 星期 年份二、各字段的含义位置...原创 2019-02-11 14:25:51 · 3057 阅读 · 0 评论 -
Spring Boot 定时任务三 : quartz基本使用
一、Quartz介绍二、Quartz 的使用思路1)job - 任务- 你要做什么事?2)Trigger - 触发器- 你什么时候去做?3)Scheduler - 任务调度- 你什么时候需要去做什么事?三、基本使用案例 1)pom文件新增Quartz <!-- Quartz 坐标--> <dependency> <gr...原创 2019-02-12 14:20:01 · 247 阅读 · 0 评论 -
Springboot 异常处理
Springboot 异常处理提供了5种方式,常用的有3种统一处理异常方式,分别是: A) @ControllerAdvice + @ExceptionHandler B) SimpleMappingExceptionResolver C) 实现HandlerExceptionResolver 接口类 (推荐使用)其余2种都是提供的原始处理,一般也不会用,就不多说了,下...原创 2018-10-11 11:18:48 · 665 阅读 · 0 评论