SpringBoot
文章平均质量分 91
基于SpringBoot框架之上整合常见的应用
皓亮君
夫君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。夫学须静也!
展开
-
【SpringBoot框架篇】33.优雅集成i18n实现国际化信息返回
由于公司业务需求,需要支持中英两个版本的返回提示信息,使用spring的类获取对应语种的i18n文件的提示信息。i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(无需做大的改变就能够适应不同的语言和地区的需要。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。在全球化的时代,国际化尤为重要,因为产品的潜在用户可能来自世界的各个角落。原创 2023-08-09 18:38:44 · 5102 阅读 · 1 评论 -
【SpringBoot框架篇】32.基于注解+redis实现表单防重复提交
在一些表单提交操作的时候会存在用户多次点击button触发提交事件的场景(针对异步请求场景)。1.声明一个loading变量,当触发submit事件的时候判断loading的值是否为true,为true则不进行操作2.如果判断的loading值为false,则发送请求提交数据到后台保存。3.当ajax异步处理成功的时候,把loading改为false(类似于释放锁);return;}}});}众所周知,数据验证和表单防重复提交等逻辑在前端可以做判断,但是后台还是会再请求做一次校验。原创 2022-12-22 23:30:00 · 1579 阅读 · 7 评论 -
【SpringBoot框架篇】31.基于分布式锁或xxx-job实现分布式任务调度
定时任务使用场景一般为指定时间做数据统计,临时数据清理等等。在SpringBoot启动类上面添加@注解开启spring定时任务功能在定时任务方法上添加@Scheduled实现log . info(" -- -- -- -- -- -- - 凌晨 1 点统计前一天的业务数据量 -- -- -- -- -- -- -- } }以上的配置如果是在服务需要部署多个节点的时候会出现重复执行定时任务导出数据重复的问题,这个时候可以通过分布式锁或使用xxx-job分布式任务调度平台避免这个任务重复执行的问题。原创 2022-09-16 20:51:48 · 6510 阅读 · 0 评论 -
【SpringBoot框架篇】30.使用sharding-jdbc实现读写分离和分库分表
ShardingSphere-JDBC 提供了 4 种配置方式,用于不同的使用场景。 通过配置,应用开发者可以灵活的使用数据分片、读写分离、数据加密、影子库等功能,并且能够叠加使用。原创 2022-09-07 01:12:33 · 1618 阅读 · 1 评论 -
【SpringBoot框架篇】29.Jpa+vue实现单模型的低代码平台
单模型的低代码平台原创 2022-08-30 13:17:10 · 5078 阅读 · 0 评论 -
【SpringBoot框架篇】28.使用JdbcTemplate操作数据库
使用JdbcTemplate操作数据库原创 2022-08-29 20:49:41 · 1656 阅读 · 0 评论 -
【SpringBoot框架篇】27.集成mail实现邮件推送带网页样式的消息
文章目录1.引入依赖2.邮箱信息配置类3.发送邮件的工具类4.main函数测试发送邮件5.集成js插件ueditor编写带样式的邮件正文5.1.页面集成插件5.2.编写后台接口接收数据并发送邮件6.项目配套代码1.引入依赖 <!--发送邮件需要的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <a原创 2022-05-28 13:42:05 · 1629 阅读 · 5 评论 -
【SpringBoot框架篇】26.集成spring-boot-starter-validation对接口参数校验
文章目录1.常规验证2.使用validation验证2.1.添加依赖2.2.常用注解2.3.在pojo类中添加需要使用的注解2.4.在接口入参处添加@Valid2.5.添加全局异常处理类返回校验错位提示信息1.常规验证以下面的登录接口为例,需要手动去验证参数是否存在,这种写法繁琐且不太优雅。@RestControllerpublic class LoginController { @RequestMapping("/login") public String test(@Reque原创 2022-05-15 16:06:07 · 1786 阅读 · 0 评论 -
【SpringBoot框架篇】25.集成Minio实现文件的分布式对象存储
使用Minio实现文件的分布式存储原创 2021-12-06 07:48:47 · 3561 阅读 · 6 评论 -
【SpringBoot框架篇】24.集成FastDFS实现文件的分布式存储
[top]一.简介如果应用是在集群部署,如果文件存储需要共享要通过linux的nfs服务来实现共享,或者把文件存储在分布式文件存储系统里面,例如FastDFS,minio,本章讲解集成FastDFS实现分布式文件存储。FastDFS环境搭建请参考https://dominick-li.blog.csdn.net/article/details/121529247二.添加配置1.在maven的pom.xml中添加fastDfs依赖包 <!-- FastDFS依赖 -->原创 2021-11-26 08:34:43 · 2375 阅读 · 0 评论 -
【SpringBoot框架篇】23.集成smart-doc插件零侵入自动生成RESTful格式API文档
文章目录简介1.配置准备1.1添加maven插件1.2 创建配置文件1.3 添加统一返回数据格式类2.接口实战2.1 demo接口类2.2 用户模型类2.3相关注释描述2.3.1 接口名称2.3.2 接口参数2.3.2.1 @PathVariable和@RequestParam2.3.2.2 @RequestBody2.3.2.3模型类相关注释3.文档生成并查看3.1生成文档命令3.2查看4.集成torna统一管理和测试API文档4.1创建空间并找到3要素(appKey,secret,appToken)4.原创 2021-10-18 19:07:13 · 2479 阅读 · 0 评论 -
【SpringBoot框架篇】22.集成RocketMQ实现消息发布和订阅
集成RocketMQ实现消息的发布和订阅原创 2021-08-09 00:25:47 · 5058 阅读 · 1 评论 -
【SpringBoot框架篇】21.对springboot框架编译后的jar文件瘦身
文章目录为什么要瘦身应用实战1.pom使用的依赖2.打包3.复制这些jar到项目根路径的release/lib目录下4.配置打包时忽略特定的依赖5.Layered Jar描述6.启动jar的时候需要指定LOADER_PATH加载依赖jar项目配套代码为什么要瘦身Spring Boot 2.3(截至目前版本为 M3)为容器化部署提供了一个新特性 Layered Jar。通常 Spring Boot 程序都是以 fat jar 的方式构建的,文件大小动辄 50M、100M 这样子,对 docker imag原创 2021-07-23 13:29:09 · 1025 阅读 · 0 评论 -
【SpringBoot框架篇】20.自定义@Configuration配置类启用开关
简介通过@Configuration注解标识的类默认都会被spring加载,但是我们有时候想要通过开关来决定要不要加载,这个时候就需要该博客讲解的内容。我目前了解的两种实现方式如下1.自定义@Enable注解2.通过配置文件配置自定义@Enable注解我常用的例如:@EnableCaching(缓存)、@EnableScheduling(定时任务),@EnableJpaAuditing(审计),这类注解就像开关一样,只要在SpringBoot启动类上加这类注解,就能开启相关的功能。本文以原创 2021-01-17 23:28:32 · 5059 阅读 · 0 评论 -
【SpringBoot框架篇】19.集成spring-session利用redis来实现session共享
集成spring-session利用redis来实现session共享原创 2021-01-17 22:41:42 · 2657 阅读 · 0 评论 -
【SpringBoot框架篇】18.使用Netty加websocket实现在线聊天功能
使用netty加websocket实现在线聊天功能原创 2020-09-12 23:02:24 · 12042 阅读 · 25 评论 -
【SpringBoot框架篇】17.使用swagger2生成RESTful风格的接口文档
使用swagger2生成RESTful风格的接口文档原创 2020-08-02 11:11:05 · 1700 阅读 · 0 评论 -
【SpringBoot框架篇】16.security整合jwt实现对前后端分离的项目进行权限认证
使用Spring Security+JWT实现对前后端分离的项目进行权限认证原创 2020-08-01 19:45:29 · 4755 阅读 · 0 评论 -
【SpringBoot框架篇】15.使用shiro对web应用进行权限认证
使用shiro对web应用进行权限认证原创 2020-07-08 00:52:46 · 2403 阅读 · 2 评论 -
【SpringBoot框架篇】14.mybatis-plus实战
文章目录简介版本使用模板生成器生成模板代码添加依赖创建表创建模板实体类的超类添加模板生成器代码运行main函数使用mybatis-plus实现基本的CRUD功能通用代码层service代码详解mapper控制器层调用接口自定义分页条件注入器页面查询条件注入代码配套代码已上传到github上简介Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参原创 2020-07-05 22:58:19 · 2059 阅读 · 1 评论 -
【SpringBoot框架篇】13.使用springboot admin对springboot应用进行监控
应用集成adminSpring Boot Admin 对springboot应用进行监控原创 2020-07-05 16:10:47 · 7892 阅读 · 5 评论 -
【SpringBoot框架篇】12.使用druid的monitor工具查看sql执行性能
使用druid的monitor工具查看sql执行性能原创 2020-05-24 17:43:12 · 6476 阅读 · 1 评论 -
【SpringBoot框架篇】11.Spring Data Jpa实战
文章目录简介JPASpring Data JpaHibernateJpa、Spring Data Jpa、Hibernate三者之间的关系应用实战引入依赖配置文件实体类常用注解@Entity和@Table@Id和@GeneratedValue@Column@Transient继承超类的通用字段属性@MappedSuperclass@Inheritance审计功能启用审计功能在启动类里添加注解在需要使用的类上面添加审计监听器审计功能注解添加审计人简介首先了解一下 JPA,Spring Data Jpa,之原创 2020-05-24 17:07:04 · 3484 阅读 · 2 评论 -
【SpringBoot框架篇】10.API接口限流实战
文章目录简介限流算法漏桶算法令牌桶算法基于guava的RateLimiter实现引入依赖自定义注解自定义切面类编写web接口压测简介对接口限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理限流算法常用的限流算法由:楼桶算法和令牌桶算法。漏桶算法漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速原创 2020-05-21 23:59:46 · 10675 阅读 · 2 评论 -
【SpringBoot框架篇】9.dubbo入门实战
文章目录简介核心组件主要分为4个模块组成应用实战项目代码结构聚合工程通用api服务提供者引入依赖配置文件服务提供者代码逻辑修改启动类启动服务提供者服务消费者引入依赖配置文件服务消费者代码逻辑添加web接口用于测试修改启动类启动项目测试dubbo控制台使用下载dubbo-admin修改配置文件启动dubbo-admin简介Dubbo是阿里开源的一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。核心组件Remotin原创 2020-05-20 00:39:54 · 1317 阅读 · 1 评论 -
【SpringBoot框架篇】8.搭建自己的spring-boot-starter
文章目录简述创建starter服务引入构建starter的核心依赖创建配置类封装服务提供者注册Bean对象暴露需要被装配的类发布jar包到本地仓库引入我的my-spring-boot-starter依赖引入依赖修改配置文件启动程序简述我们可以认为starter是一种服务,在使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动注入的bean。我们在开发springboot项目的时候,经常会引用spring-boot-starter-web,spring-bo原创 2020-05-19 23:23:15 · 3015 阅读 · 1 评论 -
【SpringBoot框架篇】7.项目发布到生产环境
文章目录前言目录结构发布jar到指定目录配置文件应用的配置文件日志文件启动脚本linux启动脚本脚本内容启动停止重启window脚本启动脚本停止脚本前言使用本教程的部署方案,可以简化应用部署跌打流程目录结构发布jar到指定目录需要使用maven-antrun-plugin插件把jar包发布到release/lib目录下<!--把包发布到应用的release/lib目录下面--><plugin><artifactId>maven-antrun-plugin原创 2020-05-19 13:25:37 · 4891 阅读 · 1 评论 -
【SpringBoot框架篇】6.docker部署,并挂载配置文件到宿主机上面
docker部署springboot项目,并挂载配置文件到宿主机上面准备一个springboot项目项目里配置文件内容编写一个web方位,用于测试重定向配置文件准备好构建镜像需要的文件编写Dockerfile文件构建镜像并运行把需要构建的文件上传到服务器修改配置文件内容启动镜像测试配置文件属性是否变化挂载配置文件到宿主机停止并删除刚刚构建的容器修改配置文件构建容器并指定配置外部文件测试配置后的效果...原创 2020-05-04 22:51:42 · 10384 阅读 · 6 评论 -
【SpringBoot框架篇】5.分布式锁的实现方式
文章目录简述为什么要用分布式锁分布式锁的实现方式基于 redis的 单线程原子性redis实现方式JAVA代码实现引入依赖配置文件Controller层模拟测试启动2个进程配置nginx使用java多线程模拟并发使用jmeter模拟并发基于数据库的排它锁引入依赖配置文件JAVA代码controllermodelaop切面测试代码基于 ZooKeeper 做分布式锁引入依赖配置文件JAVA代码简述为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技原创 2020-05-19 00:29:45 · 5799 阅读 · 2 评论 -
【SpringBoot框架篇】3.优化代码,让代码更简洁高效
文章目录简介lombok插件idea安装lombok插件在pom.xml文件中引入依赖实体类注解@Getter@Setter@ToString@Data@Slf4j优化toString方法引入依赖定义一个基类继承基类定义全局异常处理类@ControllerAdvice@ExceptionHandler应用如下使用Aspect打印接口参数信息AOP描述引入依赖相关注解描述应用实在编写切面类代码编写测试的web接口模拟postman调用接口运行结果如下简介该文章主要教大家如何去除重复性的代码,减少代码的行数原创 2020-05-17 16:03:25 · 4203 阅读 · 1 评论 -
【SpringBoot框架篇】2.Thymeleaf模板引擎实战
文章目录简介springboot集成thymeleaf环境准备引入thymeleaf相关依赖配置应用热部署后台数据准备接口访问层数据存储层数据模型层模板标签应用渲染内容标签文本渲染标签dom元素渲染标签使用${#session} 显示登录的用户信息简介Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 -HTML可以在浏览器中正确显示,也- 可以作为静态原型工作,从而可以在开发团队中加强协作。Thymelea原创 2020-05-17 13:58:03 · 3271 阅读 · 0 评论 -
【SpringBoot框架篇】1.搭建第一个springboot项目
文章目录简介特点搭建第一个springboot项目创建项目添加web接口配置启动端口启动程序idea中启动编译成jar包后启动简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新的应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(快速应用程序开发)成为领导者。特点.创建独立的Spring应用程序.嵌入的Tomcat,无需部署WAR文件.简原创 2020-05-16 15:02:00 · 2916 阅读 · 1 评论 -
【SpringBoot框架篇】4.集成jta-atomikos实现分布式事务
springboot集成jta-atomikos实现分布式事务简介引入依赖修改配置文件添加配置读取类创建多数据源,管理事务数据持久化数据库DLL文件模拟事务回滚简介1.分布式事务说到分布式事务,可以理解为,由于分布式而引起的事务不一致的问题。随着项目做大,模块拆分,数据库拆分。一次包含增删改操作数据库涉及到了更新两个不同物理节点的数据库,这样的数据库事务只能保证自己处理的部分的事务,但是整个...原创 2020-04-25 17:33:13 · 4759 阅读 · 11 评论 -
springboot使用 tomcat或jetty开通http,https端口
springboot开通http和https端口springboot应用默认内嵌的web容器是tomcat,可以修改默认容器为jettyversion: springboot 2.0及以上一 默认内嵌tomcat方式开通http和https端口1.1启动类添加tomcat配置pac...原创 2018-12-20 20:00:10 · 3081 阅读 · 4 评论 -
springboot设置session监听器
springboot设置session监听器1.添加session管理器package com.sinosoft.session.server;import java.util.HashMap;import javax.servlet.http.HttpSession;/** * Created by ...原创 2018-09-20 20:27:23 · 7426 阅读 · 3 评论 -
ehcache实现用户登陆失败5次锁定5分钟不能登陆
登陆失败5次锁定账号5分钟本人使用环境是springboot+ ehcache如果还有不会springboot的童鞋看下我这篇文章hello springBoot登陆失败前4次提示用户密码错误,第5次把用户账号存入缓存,并清除计数的缓存,运行效果如下,代码在下面使用...原创 2018-08-19 01:42:50 · 2080 阅读 · 1 评论 -
springboot项目启动后,自动执行需要的初始化操作
本篇文章拿springboot启动后,自动打开1个浏览器访问项目的html5页面来演示介绍2种方法,推荐第2种第一种 手动给spring加入监听任务,比较麻烦第1步:先写1个线程类,在springboot启动加载完,自动执行的操作放在里面package com.sinosoft.speech.util;import org.springframework...原创 2018-07-22 18:16:00 · 22184 阅读 · 4 评论