SpringBoot系列
文章平均质量分 84
SpringBoot基础入门到实战案例
DT辰白
5年Java、大数据开发工程师,亿级数据处理经验。
展开
-
观察者模式实战:解密最热门的设计模式之一
随着系统的复杂度变高,我们就会采取各种各样的优化手段来进行解耦,降低系统的复杂度,其中设计模式是古人经验的一种设计总结,场景一:发送消息的时候,需要采取不同的消息发送渠道,一次发送一个或者多个渠道,这种不确定的变化,我们就可以采用观察者模式来进行解耦,当一个对象状态发生改变时,其他依赖对象的状态也随之变更,这是观察者模式的核心。注:本篇文章纯干货,采用Java的设计模式以及Spring设计模式实现,另外设计编码了交互页面,能够更直观体验观察者模式之美。原创 2024-05-03 16:48:57 · 1905 阅读 · 4 评论 -
最新一款SpringBoot vue 打造的CMS管理系统开源了,极速体验
文章目录前言一、系统目标二、系统界面1.登录页面2.系统首页3.系统模块总结前言DT CMS 是一款SpringBoot2.x与Vue整合前后端分离内容管理系统,项目源码完全由个人精心编写,致力于做更简洁高性能RBAC内容服务系统,追求 快速的用户体验 、 二次编码 ,以及 核心技术模块的整合 使用。后端新技术框架的加持、前端UI的设计与美化,会持续升级,持续完善。开源地址: https://gitee.com/summerydf/dtcmsservice 欢迎点赞,评论,记得一定要start!!原创 2021-11-06 13:36:41 · 5570 阅读 · 0 评论 -
三分钟撸完前后端crypto-js加解密,你学废了吗?
文章目录前言一、AES概念1.密钥KEY二、前端加密1.安装依赖库2.实现AES加密算法总结前言扣扣扣扣一、AES概念1.密钥KEY用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。密钥是绝对不可以泄漏的,否则会被攻击者还原密文,窃取机密数据。二、前端加密企业项目一般都对安全系数有要求,这里我们前后端统一采用AE原创 2021-09-04 14:36:36 · 2866 阅读 · 0 评论 -
最全Spring Boot2.x系列Config配置集成篇-1参数配置
文章目录前言一、两种配置文件1、加载顺序上的区别2、应用场景二、不同环境配置文件三、读取配置文件信息1、@Value注解读取文件2、Environment读取文件3、@ConfigurationProperties读取配置文件总结前言使用过Spring Boot的小伙伴都知道,他的配置参数必不可少,比如MySql的连接,端口号的配置等等,都需要Spring Boot的config参数配置,下面我们就来认识一下,我们工作开发中,常用的一些配置,以及获取配置参数的方式。一、两种配置文件首先我们知道Sp原创 2021-07-14 23:14:19 · 1953 阅读 · 7 评论 -
最细致的Spring Boot结合Vue前后端分离项目打包部署步骤(搭配Nginx)
文章目录前言一、环境准备二、SpringBoot项目打jar包1.1 使用Maven的package插件打包1.2 上传至Linux服务器三、Vue项目打包1.1 修改后台请求地址1.2 生成dist文件1.3 上传至linux服务器三、配置Nginx四、启动项目1.1 启动Nginx服务器1.2 启动SpringBoot1.3 访问项目总结前言Java企业开发少不了Spring Boot 加 Vue,在如今大街小巷都遍布的前后端分离项目标配,已经成为公司开发必不可少的技术,最近小编开源了一个关于RB原创 2021-07-05 21:51:13 · 3987 阅读 · 17 评论 -
DT CMS致力于Spring Boot2.3.5 Vue前后端分离的RBAC权限框架(盛世美颜!)
文章目录前言一、核心技术二、系统架构1.模块设计1、后端模块2、前端模块2.安全设计3.接口设计三、页面演示1、登录首页2、首页展示3、用户列表1、用户添加2、角色分配4、角色列表1、权限分配5、菜单列表1、新增菜单2、添加节点3、添加图标6、机构列表四、Swagger测试文档五、DRUID数据监控总结前言DT CMS 是一款精心打造的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,权限级别细致到按钮权限,今后会整合到SpringCloud微服务中,并且加入单点登录等等内容。一、核心原创 2021-06-29 23:18:39 · 1176 阅读 · 9 评论 -
最详细的MyBatis批量添加、更新、删除实战篇(日常开发)
MyBatis批量操作前言一、批量添加1.Mapper.xml2.Controller层3.Json集合数据二、批量更新1.Mapper.xml2.Controller层3.Json集合数据三、批量删除1.Mapper.xml2.Controller层3.Json集合数据四、批量查询1.Mapper.xml2.Controller层3.Json集合数据总结前言工作中,经常会遇到很多批量操作的需求:批量添加、批量更新、批量删除、批量导入、批量审核等等,下面这篇文章我们将一一复现。一、批量添加1.M原创 2021-06-15 22:57:01 · 25982 阅读 · 5 评论 -
大数据量数据,MySql批量插入时,如何不插入重复的数据?
文章目录前言一、insert ignore into二、on duplicate key update三、replace into总结前言Mysql插入不重复的数据,当大数据量的数据需要插入值时,要判断插入是否重复,然后再插入,那么如何提高效率?解决的办法有很多种,不同的场景解决方案也不一样,数据量很小的情况下,怎么搞都行,但是数据量很大的时候,这就不是一个简单的问题了。一、insert ignore into会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就原创 2021-06-14 21:36:17 · 19707 阅读 · 13 评论 -
Mybatis-Plus批量插入数据太慢,使用rewriteBatchedStatements属性优化,堪称速度与激情!
rewriteBatchedStatements神秘属性前言一、rewriteBatchedStatements参数二、批量添加员工信息1.普通saveBatch批量插入2.设置rewriteBatchedStatements=true批量插入总结前言最近小编手上一堆项目,实在特别忙,每天一堆批量操作,更新、导入、新增、删除,公司使用的Mybatis-Plus操作SQL,用过Mybatis-Plus的小伙伴一定知道他有很多API提供给我们使用,真爽,再不用写那么多繁琐的SQL语句,saveBatch是原创 2021-06-14 11:41:38 · 9001 阅读 · 8 评论 -
SpringBoot集成logback彩色日志配置以及banner启动设置(炫酷到爆炸!)
文章目录前言一、banner配置1.1 banner图像在线生成工具1.2 banner配置颜色1.3 banner启动状态控制二、logback彩色日志配置2.1 引入依赖2.2 logback-spring.xml配置2.3 logback-spring.xml官方彩色配置总结前言最近小编实在无聊,每天看着IDEA的控制台打印,丑到爆,实在不爽,影响我粘贴复制的速度,于是来一波炫酷的操作,其实就是单纯的为了好玩,炫酷!!!!!!真的是这样吗?不,那是必须要掌握的知识,学SpringBoot 这都不原创 2021-06-04 22:16:46 · 6480 阅读 · 1 评论 -
必看企业级Redis锁资产巡检扫描业务场景实现(加锁限制扫描次数)
Redis实现资产巡检扫描前言一、需求一:限制扫描次数1.1 业务分析1.2 代码实现二、需求二:限制同一个位置同一时间只能有一个人扫描1.1 业务分析1.2 伪代码实现1.3 具体代码实现1.4 调用API总结前言最近小编在公司遇到这么一个需求,现在分享出来给大家一起讨论,用户需求:对设备资产巡检扫描做一个次数限制,就比如我们保安巡逻,每天固定巡逻几次,不能超出限制,还有很多列子,比如一个API接口限制请求次数,大概业务逻辑就是这样。一、需求一:限制扫描次数首先Redis的环境准备,这里小编不原创 2021-05-27 22:54:24 · 553 阅读 · 0 评论 -
Spring Boot集成ShedLock分布式定时任务实例
ShedLock使用大全系列前言一、ShedLock是什么?二、落地实现1.1 引入依赖包1.2 配置数据库连接信息1.3 创建Mysql数据表1.4 配置LockProvider1.5 创建定时Job1.6 主启动类1.7 执行成功分析1.7 修改表名总结前言ShedLock确保您计划的任务最多同时执行一次。如果一个任务正在一个节点上执行,则它会获得一个锁,该锁将阻止从另一个节点(或线程)执行同一任务。请注意,如果一个任务已经在一个节点上执行,则在其他节点上的执行不会等待,只是将其跳过。Shed原创 2021-05-22 11:11:26 · 1413 阅读 · 0 评论 -
全网最新Redis结合Kaptcha实现验证码功能篇二(前后端分离)
文章目录前言一、引入依赖二、配置yam三、使用步骤3.1 Redis序列化配置类3.1 写入key测试3.2 将验证码存入Redis中3.3 登录获取验证码比对1、安装axios2、编写页面接口3、登录接口总结前言Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。一、引入依赖<!--redis依赖包--><dependency> <groupId>org.springframework.boot</g原创 2021-05-20 22:31:47 · 1204 阅读 · 14 评论 -
全网最新Redis结合Kaptcha实现验证码功能篇一(前后端分离)
文章目录前言一、导入Kaptcha依赖包二、使用步骤1.验证码配置类2.获取验证码接口3、Vue页面4、去除背景5、自定义背景以及验证码随机规则总结前言Google 的 kaptcha 框架是一个高度可配置的实用验证码生成工具,下面我们来使用一下,很多公司都在用,特别实在。kaptcha 是一个扩展自 simplecaptcha 的验证码库,在 Java 编程中 是一个非常实用的验证码生成工具。我们可以利用这个工具生成各种样式的验证码,因为它是可配置的,我们可以根据需求定制一、导入Kaptc原创 2021-05-19 23:37:05 · 1322 阅读 · 2 评论 -
Groovy语言之SpringBoot整合JDBC案例
Groovy语言前言一、 Groovy火吗?二、Groovy的特点三、使用步骤3.1 导入pom.xml依赖3.2 配置application.yml3.3 编写API接口3.4 编写业务层3.5 测试四、集成Groovy4.1 导入pom.xml依赖4.2 编写API接口4.3 编写业务层4.4 测试五、插入数据对比5.1 Java的方式5.2 Groovy的方式六、Groovy基本语法6.1 打印输出6.2 关键字6.3 数据类型6.4 变量6.5 循环6.6 三目运算符6.7 捕获异常6.8 swit原创 2021-05-17 21:58:51 · 1216 阅读 · 3 评论 -
强大的Spring Boot启动监听器事件-初始化系统账号密码
文章目录前言一、SpringApplicationEvents 事件类型1.1 ApplicationStartingEvent1.2 ApplicationEnvironmentPreparedEvent1.3 ApplicationContextInitializedEvent1.4 ApplicationPreparedEvent1.5 ApplicationStartedEvent1.6 AvailabilityChangeEvent1.7 ApplicationReadyEvent1.8 Avai原创 2021-05-10 22:39:05 · 729 阅读 · 0 评论 -
Spring Boot项目优雅的全局异常处理方式(全网最新)
全局异常处理前言一、全局异常处理方式一1.1 自定义全局异常类1.2 手动抛出异常1.3 测试打印二、全局异常处理方式二2.1 定义基础接口类2.2 定义枚举类2.3 自定义异常类2.4 自定义数据传输2.5 自定义全局异常处理2.6 测试代码总结前言在日常项目开发中,异常是常见的,但是如何更高效的处理好异常信息,让我们能快速定位到BUG,是很重要的,不仅能够提高我们的开发效率,还能让你代码看上去更舒服,SpringBoot的项目已经对有一定的异常处理了,但是对于我们开发者而言可能就不太合适了,因此我原创 2021-04-19 22:17:46 · 58490 阅读 · 32 评论 -
Spring Boot最新版集成邮件发送功能大全
前言SMTP是一种提供可靠且有效的电子邮件传输的协议,SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。邮件发送功能相信很多小伙伴都有接触过,这也是实际开发中最常见的需求,比如用户注册,找回密码,下订单等等,这里小编就不一一阐述了,接下来小编带你一步步实现它,由于Spring Boot更新迭代速度贼快,我们就来使用目前官方正式发布的最新版本2.3.2对邮件发送进行实战。原创 2020-08-06 01:37:45 · 2290 阅读 · 0 评论 -
全新SpringBoot整合Elasticsearch6.xxx搜索引擎实战
前言小编的私人博客(http://ydfblog.cn/),一字一码敲出来了的,希望把自己使用过的技术分享给大家,废话不多说,直接搬过来吧。一、导入相关依赖包Spring Data Elasticsearch是Spring Data项目下的一个子模块。spring Data 的使命是给各种数据访问提供统一的编程接口,不管是关系型数据库(如MySQL),还是非关系数据库(如Redis),或者类似Elasticsearch这样的索引数据库。从而简化开发人员的代码,提高开发效率。<!--Spr原创 2020-07-23 00:11:28 · 1557 阅读 · 0 评论 -
SpringBoot FK-关联表查询(三)
通过t_student表ID查询与其相关的信息,如某个学生的姓名和其所在班级点击查看链接,如下这里我们的班级名称是在t_class表中的,学生姓名是在t_student中的,并不是在同一张表上,这样当t_class中的班级名称改变之后,t_class中查到的班级信息也会随之改动,这样才达到表关联目的。通过id查询学生相关信息<td><a th:href="@{'/stuInfo/'+${stu.stu_id}}">查看</a></td>控制层原创 2020-07-20 18:00:08 · 366 阅读 · 0 评论 -
SpringBoot FK-关联表查询(二)
上篇中已经介绍了如何创建外键,以下是实现的demo效果从中我们可以查询出t_student中的学生信息以及其对应班级信息,并且可以根据id进行增删查改。1、实体类代码package com.ydf.demo.pojo;import lombok.Data;@Datapublic class Student { private int stu_id; //学生主键 private String stu_name; //学生姓名 private原创 2020-07-20 17:58:40 · 293 阅读 · 0 评论 -
Spring Security记住我功能之潜在的账号盗取风险
前言记住我功能方便是大家看得见的,但是安全性却令人担忧。因为Cookie毕竟是保存在客户端的,很容易盗取,而且cookie的值还与用户名、密码这些敏感数据相关,虽然加密了,但是将敏感信息存在客户端,还是不太安全。那么这就要提醒喜欢使用此功能的,用完网站要及时手动退出登录,清空认证信息。Spring Security过滤器链使用过Spring Security的小伙伴应该都不陌生,总之很爽,其余的不解释。其中一个过滤器RememberMeAuthenticationFilter默认是不开启的!那么有一原创 2020-07-17 12:39:19 · 699 阅读 · 1 评论 -
Mybatis-Plus查询中排除标识字段
一、查询中排除标识字段1.1 测试查询@Testpublic void findAllTest() { List<User> userList = userMapper.selectList(null); userList.forEach(System.out::println);}1.2 实体类字段不添加@TableField注解//逻辑删除注解(0 未删除 1 已删除)@TableLogic/*@TableField(select = false)*/pr原创 2020-06-26 11:55:50 · 15277 阅读 · 0 评论 -
MyBatis-Plus通用枚举自动关联注入
一、通用枚举解决了繁琐的配置,让 mybatis 优雅的使用枚举属性!一般搜索用户信息列表,列如用户有禁用和启用两个状态@Datapublic class User implements Serializable { private static final long serialVersionUID = 1L; private BigInteger id; private String name; private String email; privat原创 2020-06-26 00:03:11 · 1530 阅读 · 3 评论 -
try-catch捕获异常信息后Spring事务失效处理方法
一、首先在Spring Boot项目中,手动添加异常方法进行测试@Transactional(rollbackFor=Exception.class) //表示此方法有异常时触发Spring事务@Overridepublic CommonResult<User> saveUser(User user) { int insert = baseMapper.insert(user); try { // 添加异常,并进行捕获 int a = 10/原创 2020-06-11 23:40:53 · 5764 阅读 · 3 评论 -
Mybatis-Plus驼峰命名规则之Date类型字段返回值为null
一、通过Mybatis-Plus后台接口查询数据返回,Date类时间字段返回值为null,怎么解决?1、首先:Mybatis-Plus驼峰命名规则默认是开启状态,无需我们进行任何配置2、数据库中有一张user表,其中有两个字段是这样创建的3、再看我们的用户信息表实体类4、当我们执行接口查询数据的时候,查看我们的返回结果5、怎么解决呢?1》首先在yml中加入如下时间处理全局配置 jackson: date-format: yyyy-MM-dd HH:mm:ss time-原创 2020-06-11 18:30:25 · 1854 阅读 · 0 评论 -
Spring Boot 前后端分离解决跨越问题
一、起源当我们在开发前后端分离项目的时候,出于安全原因,浏览器禁止Ajax调用驻留在当前原点之外的资源。跨源资源共享(CORS)是由大多数浏览器实现的W3C规范,允许您灵活地指定什么样的跨域请求被授权,而不是使用一些不太安全和不太强大的策略,如IFRAME或JSONP。二、如何解决跨域问题方式一:使用@CrossOrigin注解Spring Framework 4.2 GA为CORS提供了第一类支持,使您比通常的基于过滤器的解决方案更容易和更强大地配置它。所以springMVC的版本要在4.2或以上原创 2020-06-06 21:25:53 · 1817 阅读 · 0 评论 -
最新SpringBoot2.0X整合SpringData JPA实战完整篇
先来张效果图吧一、pom.xml 导入依赖包<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupI原创 2020-05-25 00:36:29 · 491 阅读 · 0 评论 -
Spring Boot 事务支持
如何使用?Spring Boot 使用事务支持,非常简单,底层依然采用的是Spring本身提供的事务管理。1、在启动类中添加 @EnableTransactionManagement 注解2、在业务层的接口实现类中的方法上添加 @Transactional 注解实例演示SpringbootApplication 启动类上添加注解:@EnableTransactionManagement@SpringBootApplication@MapperScan(basePackages = "com.i原创 2020-05-19 13:42:46 · 497 阅读 · 0 评论 -
Spring Boot中常见注解诠释
一:@Mapper和@MapperScan1、@Mapper@Mapper 将接口交给Spring进行管理,为这个接口生成一个实现类,让别的类进行引用、不再写mapper映射文件。@Mapper //该注解将接口变成Spring容器中的一个beanpublic interface UserMapper { public List<User> findAll();}2、@MapperScan指定要扫描的Mapper类的包的路径,扫描mybatis Mapper接口类,将接原创 2020-05-18 21:23:36 · 409 阅读 · 0 评论 -
Spring Boot开发框架优点诠释
Spring Boot优点在Spring Boot开发中,它的优点无与伦比,极大提升了开发效率,专为互联网企业量身打造的开发框架。1、约定优于配置解决了传统的Spring复杂的配置、开箱即用。如:任何ssm都要配置web.xml,配置Servlert、mvc、编码、过滤器等,以及Spring Boot Starter、Spring Boot Jpa 都是“约定优于配置“的一种体现,Spring Boot Starter 在启动的过程中会根据约定的信息对资源进行初始化;Spring Boot Jpa 通原创 2020-05-18 19:44:40 · 2405 阅读 · 0 评论 -
Spring Boot集成Redis缓存之注解方式
首先还是加入依赖Jarpom.xml中加入依赖 <!-- 加载spring boot redis 包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>application.pro原创 2020-05-11 21:00:15 · 889 阅读 · 0 评论 -
Spring Boot集成Redis缓存之模拟高并发场景处理
前言同样我们以上一篇文章为例子,搭建好环境之后,我欧美可以模拟高并发场景下,我们的缓存效率怎么样,到底能不能解决我们实际项目中的缓存问题。也就是如何解决缓存穿透?Spring Boot集成Redis缓存高并发条件下处理方式一、针数据量不是很大的情况下之间加入同步锁synchronized、也能解决问题@Overridepublic synchronized List<User> findAll() { 业务省略.................}开始模拟Redis缓存高并发场原创 2020-05-11 19:55:55 · 923 阅读 · 0 评论 -
Spring Boot集成Redis缓存之RedisTemplate的方式
前言Spring Boot 集成Redis,将自动配置 RedisTemplate,在需要使用的类中注入RedisTemplate的bean即可使用@Autowiredprivate RedisTemplate<String, String> redisTemplate;@Autowiredprivate RedisTemplate<Object, Object> redisTemplate;注意: spring boot 帮我们注入的 redisTempl原创 2020-05-11 19:11:21 · 484 阅读 · 0 评论 -
解决jodconverter 2.2.1版本不支持docx、xlsx、pptx转换成PDF格式异常
Java使用openoffice将office系列文档转换为PDF搭建好 OpenOffice + jodconverter 后,转换doc(97-2003)时正常,但是转换 docx 时报了以下错误:java.lang.IllegalArgumentException: unknown document format for file: E:\word.docxopenoffice2.2...原创 2020-05-01 18:16:25 · 1837 阅读 · 6 评论 -
史上最全的ECharts讲解与使用
首先搞清楚,什么是ECharts?ECharts,一个使用 JavaScript 实现的开源可视化库。ECharts支持数据类型支持直接传入包括二维表,key-value 等多种格式的数据源。常用的key-value格式数据、如json和HashMap都是key-value的数据存储方式。简单介绍json和HashMap两种数据结构JSON建构于两种结构:1、 “名称/值”对的集合。 ...原创 2020-04-30 01:59:31 · 11192 阅读 · 1 评论