
玩转Spring Boot
文章平均质量分 69
以实战为线索,逐步深入SpringBoot开发各个环节,掌握java全栈开发常用性能体验优化思路,打造完整全栈工作流,提升工程化编码能力和思维能力。
罗汉爷
每一个不曾起舞的日子,都是对生命的辜负!
展开
-
springboot+vue+SseEmitter数据流推送实战
SSE 适用于简单的、单向的实时数据推送场景,实现简单,资源消耗低。WebSocket 适用于复杂的、双向的实时通信场景,支持二进制数据,性能高,但实现复杂,资源消耗较高。选择哪种技术取决于你的具体需求。如果你只需要服务器向客户端推送数据,且数据量不大,SSE 是一个很好的选择。如果你需要双向通信或传输大量数据,WebSocket 更适合。原创 2024-11-16 16:51:52 · 1646 阅读 · 0 评论 -
java jsoup解析豆瓣电影数据html实战教程
Jsoup 是一个开源 Java 库,它提供了一个直观的 API,可使用 DOM API 方法获取 URL 并提取和处理数据。作为一个多功能库,Jsoup 支持 CSS 选择器和 XPath,它们是识别和选择 HTML 文档中元素的强大选项。此外,Jsoup 还能处理畸形的 HTML,如包含无效或不完整标记的 HTML,这使它成为从各类网站中提取数据的重要工具。原创 2024-10-31 15:07:22 · 1230 阅读 · 0 评论 -
使用vue+kkFileview组件实现各种类型文件预览
项目使用Vue获取需要预览的项目文件列表,然后调用kkFileview预览接口实现文档在线预览。通过切换select option选项实现文件预览切换,非常贴近实际业务。原创 2024-10-24 15:11:12 · 1577 阅读 · 0 评论 -
vue请求springboot接口下载zip文件
其实只需要按照普通文件流下载即可,以下是一个例子,仅供参考。原创 2024-08-08 20:56:42 · 654 阅读 · 0 评论 -
Springboot集成Elasticsearch High Level REST Client实现增删改查实战
Elasticsearch 的 High Level REST Client 是一个用于与 Elasticsearch 进行交互的 Java 客户端库,它提供了比低级别的 REST 客户端更高级别的抽象。High Level REST Client 使用了 OkHttp 库作为底层的 HTTP 客户端,并且提供了自动重试、连接管理和错误处理等功能。它允许开发人员以面向对象的方式构建请求和解析响应,从而简化了与 Elasticsearch 的 REST API 的交互过程。原创 2024-07-25 14:48:00 · 1910 阅读 · 0 评论 -
springboot集成tika解析word,pdf,xls文件文本内容
Apache Tika 是一个开源的内容分析工具包,用于从各种文档格式中提取文本和元数据。它支持多种文档类型,包括但不限于文本文件、HTML、PDF、Microsoft Office 文档、图像文件等。Tika 的主要功能包括内容检测、文本提取和元数据提取。原创 2024-07-06 13:29:25 · 1729 阅读 · 0 评论 -
docker部署ClamAV集成java和python实现文件病毒扫描
ClamAV 是一个开源的反病毒引擎,它由多个模块组成,负责不同的任务处理。原创 2024-06-20 10:05:05 · 1366 阅读 · 0 评论 -
使用POI导出文件报错:No valid entries or contents found
使用POI导出文件报错:No valid entries or contents found。原创 2024-06-05 11:41:10 · 478 阅读 · 0 评论 -
Springboot事务控制中A方法调用B方法@Transactional生效与不生效情况实战总结
Service@Autowired/*** 新增用户*//*** 更新密码*//*** 制造异常*/int i=1/0;原理:spring 在扫描bean的时候会扫描方法上是否包含@Transactional注解,如果包含,spring会为这个bean动态地生成一个子类(即代理类,proxy),代理类是继承原来那个bean的。此时,当这个有注解的方法被调用的时候,实际上是由代理类来调用的,代理类在调用之前就会启动transaction。原创 2024-05-28 10:54:45 · 1778 阅读 · 0 评论 -
Springboot+Vue+ElementUI开发前后端分离的员工管理系统01--系统介绍
springboot_vue_emp是一个基于Springboot+Vue+ElementUI实现的前后端分离的员工管理系统。原创 2024-05-26 15:02:01 · 516 阅读 · 0 评论 -
springboot集成腾讯cos实现文件上传
对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式,用户可简单、快速地接入 COS,进行多格式文件的上传、下载和管理,实现海量数据存储和管理。原创 2023-04-27 21:49:40 · 928 阅读 · 0 评论 -
Springboot+JdbcTemplate模拟SQL注入攻击案例及解决方法
SQL注入是软件开发项目测试过程中必测项,重要等级极高。本文以springboot项目为例,模拟含有SQL注入攻击,并提供解决方法。部分内容整理自网络。原创 2023-03-15 23:42:44 · 3775 阅读 · 0 评论 -
ElasticSearch入门安装与SpringBoot集成实战
Elasticsearch 是一个实时分布式搜索和分析引擎,一般用于全文搜索、结构化搜索,分析或者三者混用。它的底层是基于Apache Lucene(TM)的开源搜索引擎,但是lucene只是一个库,需要java开发然后集成到应用。修改config/elasticsearch.ymlwindows安装启动https://github.com/mobz/elasticsearch-head下载解压。安装node8+cd根目录,https://blog.youkuaiyun.com/qq_34254090原创 2023-02-17 20:16:06 · 1030 阅读 · 0 评论 -
大米新闻微信小程序和Springboot新闻管理系统项目源码
本项目分为大米news小程序端和项目。小程序主要用来新闻展示,后台管理系统用于提供相关新闻API。原创 2022-12-28 16:49:07 · 1257 阅读 · 0 评论 -
Spring异步任务async介绍与案例实战
简单地说,用@Async注释bean的方法将使其在单独的线程中执行。换句话说,调用者不会等待被调用方法的完成。利用spring提供的注解即可简单轻松的实现异步任务处理。Spring 异步任务默认使用 Spring 内部线程池 SimpleAsyncTaskExecutor 这个线程池比较坑爹,不会复用线程。也就是说来一个请求,将会新建一个线程。极端情况下,如果调用次数过多,将会创建大量线程。Java 中的线程是会占用一定的内存空间 ,所以创建大量的线程将会导致 OOM 错误。所以如果需要使用异步任务,我们原创 2022-12-03 23:26:17 · 908 阅读 · 0 评论 -
Spring和Spring Boot的区别
Spring是一个开源轻量级框架,它允许JavaEE7开发人员构建简单、可靠和可扩展的企业应用程序。该框架主要侧重于提供各种方法来帮助您管理业务对象。与Java数据库连接(JDBC)、JavaServerPages(JSP)和JavaServlet等经典Java框架和应用程序编程接口(API)相比,它使Web应用程序的开发更加容易。该框架使用各种新技术,如面向方面编程(AOP)、普通Java对象(POJO)和依赖注入(DI)来开发企业应用程序。...原创 2022-07-28 11:32:56 · 6539 阅读 · 0 评论 -
Springboot+Vue+ElementUI实现的宿舍管理系统
项目说明doman是一个基于Springboot+Vue实现的前后端分离的宿舍管理系统。项目为本人亲手打造,需要的朋友可以拿去做个修改也是不错的。大神请忽略:)项目功能详细请看功能演示: Springboot+Vue+ElementUI实现的宿舍管理系统(前后分离) 系统管理:用户管理、角色管理、菜单管理、字典管理、部门管理业务管理:公告管理、学生管理、楼栋管理、宿舍管原创 2022-05-21 23:12:24 · 1289 阅读 · 1 评论 -
springboot+vue+elementui实现文件上传下载删除DEMO
说明前面搜索了几个关于springboot+vue+elementui上传下载的文章,感觉写的都不尽如人意。要么是功能不完善,不好用。再者就是源码提供的实在差劲,都不完整。一气之下,自己搞了一个实用的完整版DEMO,有需要的朋友拿走稍加改动就能使用。项目源码源码已经整理好了,如何运行直接看根路径下的README.md。https://gitee.com/indexman/springbootdemo效果展示工程结构前端代码<!DOCTYPE html><html l原创 2022-05-10 17:56:40 · 1674 阅读 · 0 评论 -
Springboot解决跨域问题
说明什么是跨域?由于浏览器的安全性限制,不允许前端页面访问协议不同、域名不同、端口号不同的http接口,例如我本地创建一个html,里面写一个ajax请求访问我服务器springboot应用提供的接口:192.168.56.123:8080/getUserInfo则会出报 No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误。此类问题我们一般是在接口提供方,即服务端解决。全局配置在sprin原创 2022-03-30 14:34:33 · 8200 阅读 · 0 评论 -
Springboot中如何使用日志框架logback和log4j2?
说明在这个简短的教程中,我们将探索 Spring Boot 中可用的主要日志记录选项:logback和log4j2初始设置使用 starters 时,默认使用 Logback 进行日志记录。让我们首先创建一个 Spring Boot 模块。添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web原创 2022-03-16 13:47:38 · 1899 阅读 · 0 评论 -
springboot jpa自定义SQL查询
说明在使用JPA实现数据持久化过程中经常会遇到这种情况:我有2张表是一对多的关系,需要通过一个外键ID去关联查询到另外一张表的字段。例如,1张商品表food_info其中存有商品分类ID category_id关联商品分类表food_category,那么我需要在查询商品的时候同时查出存储在商品分类表中的分类名称列category_name。要达到的效果在页面列表中展示查询到的商品分类中文名。实现代码这里主要借助JPA提供的@Query自定义查询语句。在查询之前需要先定义几个模型类。商品表模型原创 2022-03-02 21:42:44 · 3826 阅读 · 0 评论 -
Springboot thymeleaf实战总结
介绍以下总结了使用Thymeleaf做项目过程中碰到的有价值的知识点。拿出来分享!1.配置context-path在公共模板中添加:<script type="text/javascript" th:inline="javascript" th:fragment="ctx"> /*<![CDATA[*/ var ctx = /*[[@{/}]]*/ ''; /*]]>*/</script>在需要ctx的页面中添加<!-原创 2021-12-06 17:13:09 · 526 阅读 · 0 评论 -
springboot和jquery.form.js实现监听文件上传进度
说明文件上传作为程序开发最常用的功能之一,上传进度展示也是必须的。但是有时候进度并不准,进度100%了实际上后台尚未接收完毕,本篇就介绍如何利用jquery的form插件来实时反馈文件上传进度。实现效果注意:最后100%停了一下才出现返回结果,因为服务器端在将二进制流写入到磁盘中耗费了点时间。关于jquery.form1.这个框架集合form提交、验证、上传的功能。2.这个框架必须和jquery完整版结合,否则使用min则无效。原理:利用js进行对form进行组装成ajax的url和data原创 2021-11-13 13:53:37 · 1746 阅读 · 0 评论 -
Springboot AOP介绍及实战
介绍AOP是Aspect Oriented Program的首字母缩写;这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。主要用于非核心业务处理,比如权限,日志记录、异常处理,性能监控等。详细请看:https://www.zhihu.com/question/24863332实战此处就实现一个日志记录的例子。自定义注解@Target(ElementType.METHOD) //注解放置的目标位置,METHOD是可注解在方法级别上@Retention(Ret原创 2021-10-19 17:37:24 · 311 阅读 · 0 评论 -
Annotation-specified bean name conflicts with existing
问题说明Annotation-specified bean name conflicts with existing,non-compatible bean definition of same name and class翻译一下,大概就是:使用的注解发现了2个同名的bean导致了冲突。原因分析我用的springboot依赖了2个第三方jar,里面分别有一个AuditConfig bean,我又不能去修改他们,因为不是我维护的。问题清楚了下面解决吧!问题解决既然不能去改变第三方依赖,原创 2021-10-11 17:01:34 · 5049 阅读 · 0 评论 -
Springboot+LayUI实现一个简易评论系统
说明这是个简单的评论系统,目的在于介绍简单的评论和回复功能。同时基于此可以扩展更全面的、自定义的评论系统,本工程仅供学习交流使用,如果需要完整源码加老徐QQ:2480035622获取即可。技术路线前端:LayUI、Thymeleaf、JQuery后端SpringBoot、Mybatis-Plus、MySQL项目演示整体动画演示:开发步骤只介绍关键部分,需要完整源码的话找博主要。1.数据库设计此处我先只创建了一张存储评论信息的表,关键部分在于reply_t原创 2021-08-26 20:13:14 · 2858 阅读 · 9 评论 -
Springboot集成Druid连接池并实现数据库密码加密
Druid介绍Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。同时Druid不仅仅是一个数据库连接池,它包括三个部分:1.基于Filter-Chain模式的插件体系。2.DruidDataSource 高效可管理的数据库连接池。3.SQLParserD原创 2021-08-14 12:33:34 · 7656 阅读 · 9 评论 -
Springboot实现remember-me记住我功能
1.什么是remeber-me?remeber-me即记住我功能,是我们在登录web系统时的常见勾选项。当我们登录一个web系统时除了输入常规的用户名、密码后还可以勾选记住我选项(假设该系统提供了该选项),此时假设用户名、密码输入正确那么系统将会在客户浏览器cookie中记录用户登录相关认证相关信息。实现的效果就是当我们下次再次访问该网站某些页面时无需再次登录。2.rember-me实现原理2.1 登录过程中记住我流程:2.2 直接访问系统目标页,服务端验证流程:2.3 退出流程删除coo原创 2021-07-14 14:25:53 · 5397 阅读 · 5 评论 -
Error: testWhileIdle is true, validationQuery not set
说明使用springboot连接数据库,启动的时候报错:testWhileIdle is true, validationQuery not set。但是不影响系统使用,数据库等一切访问正常。记录备忘。原因空闲的时候需要进行检测,但是检测的查询语句没有设置。大致意思就是说,当数据库没有接收到请求时,会进行数据库连接检测,检查数据库是否还是连着的。检查数据库是否断开需要发送sql语句。报错是说这个sql语句没有设置。解决办法在application.yml 中添加 这两行配置:druid:原创 2021-07-11 17:01:01 · 9361 阅读 · 0 评论 -
Springboot集成Swagger实战
1.介绍本文将通过实战介绍Springboot如何集成swagger2,以用户管理模块为例,实现项目接口文档的在线管理。本文只列出核心部分,详细请看源码:https://gitee.com/indexman/boot_swagger_demo2.Swagger是干什么的?Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。官网地址:https://swagg原创 2021-06-24 16:57:06 · 307 阅读 · 0 评论 -
springboot中前端ajax如何给controller提交数组参数?
说明我有个需求,前端批量添加一堆商品明细。也就是说会有一个商品ID,然后一堆商品明细,多行。如此一来,针对后端接口肯定是要以数组或列表方式接收这个商品明细数组了。前端代码关键地方在于以formdata形式请求:// 以换行符作为分隔出一个数组var arr = data.field.kms.split('\n');$.ajax({ url: ctx+'/km/addBatch', type: "POST", dataType: "json", data:原创 2021-05-25 14:46:18 · 730 阅读 · 0 评论 -
SpringBoot+Shiro+LayUI权限管理系统项目-9.核心知识点总结
1.说明本篇讲一下本项目几个重要的知识点,详细看源码,文章下方捐赠或QQ联系捐赠获取。2.Shiro如何设置密码加密算法1.在shiro配置文件中添加:@Beanpublic HashedCredentialsMatcher hashedCredentialsMatcher(){ HashedCredentialsMatcher hashedCredentialsMatcher = new RetryLimitHashedCredentialsMatcher(ehCacheManag原创 2021-04-22 09:27:59 · 624 阅读 · 0 评论 -
SpringBoot+Shiro+LayUI权限管理系统项目-8.实现日志管理
1.说明只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取。2.功能展示包括日志搜索。3.业务模型@Data@TableName("sys_oper_log")public class SysOperLog extends Model<SysOperLog> { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO)原创 2021-04-21 09:43:27 · 664 阅读 · 3 评论 -
SpringBoot+Shiro+LayUI权限管理系统项目-7.实现用户管理
1.说明只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取。2.功能展示包括用户增删改查和分配角色。3.业务模型@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName("sys_user")public class SysUser implements Serializable { private static final long serialVersionUID原创 2021-04-19 23:00:41 · 551 阅读 · 10 评论 -
SpringBoot+Shiro+LayUI权限管理系统项目-6.实现角色管理
1.说明只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取。2.功能展示3.业务模型@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName("sys_role")public class SysRole implements Serializable { private static final long serialVersionUID = 1L; /**原创 2021-04-17 10:37:18 · 681 阅读 · 10 评论 -
SpringBoot+Shiro+LayUI权限管理系统项目-4.实现部门管理
1.说明只讲解关键部分,详细看源码,文章下发捐赠或QQ联系捐赠获取。2.功能展示3.业务模型@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName("sys_dept")public class SysDept implements Serializable { private static final long serialVersionUID = 1L; @Tab原创 2021-04-16 09:45:09 · 774 阅读 · 16 评论 -
SpringBoot+Shiro+LayUI权限管理系统项目-2.业务模型分析
1.项目模型介绍1.1 部门表部门编码、部门名称、上级部门1.2 角色表角色编码、角色名称1.3 权限表权限名称、权限标识、权限类型、上级权限、URL、权限图标、是否外部打开1.4 用户表所属部门、用户名、密码、姓名1.5 角色和权限关系表角色ID、权限ID1.6 用户和角色关系表用户ID、角色ID1.7 系统日志表操作模块、操作方法、操作类型、操作描述、请求方式、请求参数、请求IP、请求URI、操作人、操作时间2.物理模型设计3.获取源码打赏>1元留言数字3,评论原创 2021-04-14 14:32:16 · 334 阅读 · 1 评论 -
SpringBoot+Shiro+LayUI权限管理系统项目-1.项目介绍
项目介绍打造一个基于RBAC架构模式的通用的、并不复杂但易用的权限管理系统。2.获取源码源码是捐赠方式获取,捐赠后在评论区留下邮箱发送或QQ联系我 :)!3.功能介绍部门管理对于一个公司来说,下设众多部门。此处以组织机构树形式动态扩展。角色管理包括角色信息的增删改查、权限授予、取消操作。权限管理包括权限信息的增删改查操作,权限类型有3种:目录、菜单和按钮。也就是说本系统可以控制到按钮级别的权限。用户管理包括用户信息的增删改查、角色授予和取消操作。用户属于一个部门,一个用户可以授予多原创 2021-04-14 00:36:33 · 5857 阅读 · 131 评论 -
Shiro实战2-Springboot集成Shiro实战
说明最近打算打造一个简易的权限管理系统,打算用shiro做认证和授权。本篇作为springboot集成shiro的入门实战案例记录下来,希望也可以帮到大家,代码整理自网络。技术栈springboot+shiro+thymeleaf+mysql添加pom依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifac原创 2021-03-03 10:07:35 · 385 阅读 · 2 评论 -
Shiro实战1-介绍
什么是 Shiro官网:http://shiro.apache.org/shiro是一款主流的 Java 安全框架,不依赖任何容器,可以运行在 Java SE和 Java EE 项目中,它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。Shiro 就是用来解决安全管理的系统化框架。总体架构核心功能认证Authentication授权Authorization会话管理加密缓存用户信息、角色、权限等缓存到如redis等缓存中Web集成支持测试支持原创 2021-03-02 23:04:38 · 307 阅读 · 1 评论