
Spring Boot实战开发大全
文章平均质量分 78
本系列包括:
1. Spring Boot 官方文档的最通俗易懂的翻译
2. Spring Boot相关的基础知识,数据操作等介绍
3. Spring Boot 实战开发
4. Spring Boot开发常见问题与解决方法
oscar999
毕业于中国科学技术大学,数据库四级、通过系统设计师、系统分析师、信息系统项目管理师资格认证。国际项目管理(IPMP)C级认证。超过15年软件项目开发和管理经验,精通Java Web相关技术(包括Spring系列、Ext JS等),对PHP、Python、C#、Vue等有涉猎。
展开
-
Spring Cloud Config 快速介绍与实例
它适用于微服务架构,能够将各个服务的配置集中存储在服务端(如 Git 仓库),客户端按需动态获取配置,解决了配置分散、环境切换复杂等问题。到此, Config Server 和配置文件的Git仓库就已经搭建完成,接下来可以启动Config Server 进行验证。,因为my-client-app-qas.yml没有配置app.message属性,所以就看不到这个属性及对应值。, 可以看到 app.message被正确的加载了。是一个用于分布式系统的配置管理工具,提供。服务启动之后 ,在浏览器输入。原创 2025-03-17 22:46:43 · 402 阅读 · 0 评论 -
在Spring Boot项目中如何实现获取FTP远端目录结构
Windows 如何开启和使用FTP服务Java版本 :JDK 21Spring Boot 版本: 3.4.3Spring Integration FTP 版本: 6.4.2开发IDE:VS Code。原创 2025-03-11 22:53:49 · 160 阅读 · 0 评论 -
Spring Boot + Jasypt 实现application.yml 属性加密的快速示例
Jasypt(Java Simplified Encryption)是一个专为Java应用程序设计的开源加密库,旨在简化加密和解密流程,保护敏感数据如密码、API密钥等。jasypt-spring-boot-starter允许开发者在Spring Boot应用中轻松地实现加密和解密功能。本篇介绍使用 jasypt-spring-boot-starter 以达成在application.yml 等配置文件中使用加密后的字符串。原创 2025-01-07 22:44:54 · 499 阅读 · 0 评论 -
gRPC 基本介绍
gRPC(Google Remote Procedure Call)是一个现代的开源高性能远程过程调用(RPC)框架,其是一个功能强大、高性能且易于使用的RPC框架,它支持多种语言和平台,并提供了丰富的核心功能来满足各种分布式应用场景的需求。它可以在任何环境中运行。原创 2024-12-05 22:48:19 · 260 阅读 · 0 评论 -
Spring Boot 3项目创建与示例(Web+JPA)
以下是一个Spring Boot 3.3.4整合JPA的示例,它展示了如何在Spring Boot应用程序中使用JPA进行数据持久化。原创 2024-10-28 22:21:24 · 372 阅读 · 0 评论 -
Spring Boot 的Web项目如何直接显示html
实际的开发中,在Spring Boot的Web项目中直接使用html文件的场景已经比较少了, 或者是只需要很简单的页面显示,或者是演示的需要, 大部分的状况都是Spring Boot作为后端提供REST 的服务,结合其他的一些前端Framework进行开发,比如VUE,Ext JS等。原创 2024-09-05 07:04:37 · 740 阅读 · 0 评论 -
Spring WebSocket 快速示例
WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于TCP的协议),它实现了浏览器与服务器之间的全双工通信,能够更好地节省服务器资源和带宽,并达到实时通讯的目的。WebSocket是一个持久化的协议,一旦建立连接,双方可以持续进行数据传输,直到连接被关闭。Spring WebSocket 提供了一种在Spring应用程序中集成WebSocket协议的方式,以实现全双工通信。以下是一个简单的Spring WebSocket示例,包括基本的配置和消息处理。原创 2024-09-05 06:51:29 · 444 阅读 · 0 评论 -
响应式编程框架Reactor之 Flux 和 Mono 的介绍和区别
基本概念Mono是Reactor中的一个类,它表示一个异步的单个值或零个值的结果。Mono可以看作是一个特殊的Publisher,用于产生数据流,但这个数据流最多只包含一个元素,或者在没有任何元素时直接发出完成信号或错误信号。作用Mono主要用于处理那些预期会返回一个单一结果或不需要返回任何结果的异步操作,如数据库查询(假设查询结果是唯一的)、网络请求等。它提供了丰富的操作符来支持数据的转换、过滤、组合等操作,以及错误处理和资源管理等。创建方式可以通过Mono的静态方法创建,如等。原创 2024-07-24 23:05:10 · 1143 阅读 · 1 评论 -
Spring WebFlux 介绍与效果演示示例
响应式编程Spring WebFlux 使用响应式编程的理念,其中数据流和异步操作是核心概念。这种编程范式适用于高并发、高吞吐量的场景,允许应用程序以非阻塞的方式处理请求,并有效地利用服务器资源。它使用 Reactor 框架作为响应式编程的核心库,通过事件驱动和异步操作来处理请求和数据流。非阻塞和异步处理Spring WebFlux 支持异步和非阻塞的处理方式,这使得它能够处理高负载的情况,如即时通讯、实时数据推送等。原创 2024-07-21 09:57:28 · 403 阅读 · 0 评论 -
Java响应式编程库Reactor的介绍和基本使用
Reactor 基于响应式流规范(Reactive Streams Specification)的第四代响应式库。Reactor 是一种高性能的并发处理机制,主要在网络编程和事件驱动系统中得到广泛应用。它起源于多路I/O复用中的select、poll、epoll等网络模型,被设计为一种事件驱动的处理框架。Reactor的核心理念是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程/进程阻塞在多路复用器上。原创 2024-07-20 23:41:06 · 2127 阅读 · 0 评论 -
响应式编程(Reactive Programming)是什么?
Reactive Programming是一种强大的编程范式,它通过数据流和变化的传播来提高应用的响应性、可维护性和可扩展性。随着分布式系统和微服务架构的广泛应用,Reactive Programming技术将在未来发挥越来越重要的作用。不同编程语言都提供了相应的实现库或框架来支持Reactive Programming。原创 2024-07-20 23:00:34 · 588 阅读 · 0 评论 -
Spring Boot项目中JPA操作视图会改变原表吗?
有一个表,定义了几个属性,该表对应的实体类是 MyUser。/*** @date 2024年7月9日 下午9:42:54*//*** @date 2024年7月9日*/@Entity@Idreturn id;基于该表,创建了一个View的类MyUserV。/*** @date 2024年7月9日 下午9:43:42*//*** @date 2024年7月9日*/@Idreturn id;原创 2024-07-09 22:00:31 · 585 阅读 · 0 评论 -
Spring Boot 项目中的如何序列化日期格式字符串(对象转JSON的日期字符串格式)
在Spring Boot 项目中, 将Bean序列化为一个JSON字符串的时候, 对于日期类型的属性, 可以直接在属性上使用即可达成, 但是如果属性本身就是一个日期的字符串, 要输出为另外格式字符串要如何实现呢?原创 2024-06-19 22:27:27 · 524 阅读 · 0 评论 -
WebLogic 之 HV000030: No validator could be found for constraint ‘javax.validation.constraints.NotBla
等等, 日志里面会打印hibernate.validator的版本, WebLogic使用的是5.2.5.Final, 但是项目中的确是 6.2.0.Final, 原因浮现了。除了配置prefer-application-packages 之外,也可以通过prefer-web-inf-classes 配置达成效果。相关的依赖包都已经有了, 而且部署在Tomcat 中可以,部署到WebLogic 中不行。的实现, 也就是没有找到Java验证规范的实现。中的类和资源,而忽略应用服务器自带的类和资源。原创 2024-04-03 06:58:21 · 410 阅读 · 0 评论 -
Spring Boot项目中如何对Bean进行校验
在Spring Boot的REST接口项目中, 提供了对外参数的定义,使用一个Java的类定义了一个接口的参数类型,在接受参数数据时需要对这些传入的参数值做简单的验证,参数的属性值太多, 使用 if else这样的判断势必啰嗦,也不易读, 于是想到了Java Bean的校验机制。开始 Bean的校验之前, 先了解一下 JSR 303规范 和 Hibernate Validator。原创 2024-04-02 22:14:54 · 476 阅读 · 0 评论 -
Spring Boot 3 极速搭建OAuth2认证框架
使用 Spring Authorization Server 的较高版本,简单的状况只需要在 application.yml 配置就可以实现认证服务器, 如果要更详细的配置,也可以定义 SecurityConfig.java 进行配置。Spring Authorization Server支持四种授权方式, 简单起见,这里使用 客户端模式(Client Credentials),这种模式使用在API调用的授权上,这里使用 Postman进行验证。定义一个REST的控制器,并且写一个简单的映射方法。原创 2024-03-22 07:11:22 · 1775 阅读 · 7 评论 -
Spring 实现 OAuth2 授权之解决方案
Spring Authorization Server是一个提供OAuth 2.1和OpenID Connect 1.0规范以及其他相关规范实现的框架。它构建在Spring Security之上,为构建OpenID Connect 1.0身份提供程序和OAuth2授权服务器产品提供了一个安全、轻量级和可定制的基础。原创 2024-03-21 22:08:55 · 228 阅读 · 0 评论 -
Spring开发问题之org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate
从错误信息的具体分析来看, 这里的错误原因很有可能是 Spring 3.2.3 Release 不能加载JDK 8编译的组件类, 既然无法加载JDK 8 编译的, 是否编译成 JDK 1.7 版本的可以呢?因为这里使用的是Ant 编译, 所以解决方法可能就是是否可以设置Ant 编译的Java 版本。实际上,Ant 1.9.x 版本在 Java 8 发布后仍然在维护和更新,以确保与 Java 8 的兼容性。:如果编译的类文件使用的 Java 版本高于运行时环境的 Java 版本,可能会导致这个异常。原创 2024-01-16 21:33:51 · 1523 阅读 · 0 评论 -
Spring Boot 介绍
Spring Boot 不是一个全新的框架, 其是Spring的一种简化配置方式。原创 2023-09-07 21:57:43 · 446 阅读 · 0 评论 -
Spring Boot + Spring Data JPA 实现数据库操作的标准示例
本篇使用H2内存数据库演示Spring Data JPA 的使用。原创 2023-08-24 22:26:12 · 689 阅读 · 0 评论 -
Spring Boot OAuth2 快速入门示例
搭建Spring OAuth2 认证服务器并使用客户端认证模式认证演示原创 2023-07-30 22:22:36 · 876 阅读 · 0 评论 -
基于Spring OAuth2 之客户端凭证模式演示
**客户端凭证模式(Client Credentials Grant)**:适用于客户端访问自己的资源的情况,而不是代表用户访问资源。 客户端应用程序使用其自身的凭证(即客户端ID和客户端密钥)直接向身份验证服务器进行身份验证,并获取访问令牌。此授权方式不涉及用户,因为它只允许客户端访问自己的资源。本篇基于Spring OAuth2 认证服务器演示如何进行客户端凭证模式的认证原创 2023-07-27 22:22:26 · 861 阅读 · 0 评论 -
Spring Boot OAuth2 认证服务器搭建及授权码认证演示
本篇基于JDK8 搭建Spring Boot 的OAuth 2的认证服务器, 并完全显示授权码认证模式的完整过程原创 2023-07-26 22:42:25 · 1215 阅读 · 0 评论 -
Spring Boot 3 整合 H2 快速示例
这里是在一个多层级项目中搭建一个Spring的子模块项目用于演示 H2与Spring Boot的整合,单独的Spring Boot则更为简单。需要注意:Spring Boot 3 整合H2 相比Spring Boot 2有细微差别。原创 2023-07-19 23:09:51 · 477 阅读 · 0 评论 -
Ext JS + Spring Boot 整合实现文件上传实例
Ext JS + Spring Boot 整合实现文件上传实例原创 2023-06-24 09:24:36 · 573 阅读 · 0 评论 -
基于Maven创建多模块的Spring Boot项目
如果要创建一个多模块的项目,每个模块都是一个单独的Spring Boot项目,要怎么处理呢?在Maven中的多模块项目, 需要创建一个pom类型的父项目,每个模块需要指定parent为这个, 那么如何为每个模块配置Spring Boot 呢?原创 2023-05-11 22:31:36 · 895 阅读 · 0 评论 -
Spring Boot项目之伪Masked Field弱点解决
在上面一篇也提到了, 即使没有实际存在Masked Field 弱点的状况下, 有时候扫描工具也会扫到该弱点,场景就是:如果一个私有字段可以在外部被访问或者修改,无论是直接使用还是通过复杂的方法来修改,都可能会导致数据不一致或者安全问题的出现。这里的“伪Masked Field” 指的不是真正的“掩码字段”漏洞,但是却被代码扫描工具扫描出来具有该类型的弱点。对于这里而言, 在子类和父类中同时注入了 EntityManager , 会被扫描工具认为这个字段会被修改,导致不一致 ,所以提示这个风险。原创 2023-05-08 20:47:00 · 521 阅读 · 0 评论 -
Spring Boot测试无法运行问题解决(注入的组件为空)
Spring Boot测试无法运行问题解决, JUnit 版本不同导致的写法差异原创 2023-04-20 07:00:23 · 434 阅读 · 0 评论 -
Spring Boot整合Redis快速入门实例
本篇介绍如何在Spring Boot 中整合使用Redis 客户端, 连接Redis服务器进行读取操作原创 2023-04-19 07:11:14 · 459 阅读 · 0 评论 -
Spring Boot实现访问接口的Basic认证
在Spring Boot项目中使用Spring Security可以实现对某些接口实现Basic 认证, 需要使用用户名和密码登录之后才能访问接口。原创 2023-02-08 22:56:21 · 1534 阅读 · 0 评论 -
Spring RestTemplate 忽略证书访问https的OAuth2 认证站点
本篇介绍使用Spring 的 RestTemplate 如何访问 客户端认证模式 Client Rredentials 的OAuth 2.0 认证的服务。原创 2023-01-10 21:56:59 · 786 阅读 · 0 评论 -
Spring Security OAuth 访问OAuth2.0 的https站点
介绍一下Spring Security OAuth的相关使用。原创 2023-01-09 21:18:26 · 633 阅读 · 0 评论 -
Spring Boot 项目使用Spring Security防护CSRF攻击实战
Spring Boot项目结合Spring Security ,可以实现用户认证和用户授权。Spring Security的用户认证可以是配置的用户、数据库的用户或者直接整合LDAP, 用户授权上可以根据角色和用户来进行授权。综合来说, 使用Spring Boot+Spring Security 就可以很好的进行权限的管控了。除此之外, Spring Security 还提供了对CSRF、XSS等安全弱点的防护。原创 2022-11-28 21:34:50 · 1066 阅读 · 0 评论 -
[EclipseLink]XX is mapped to a primary key column in the database. Updates are not allowed.
The attribute [xxx] of class [xxx] is mapped to a primary key column in the database. Updates are not allowed.原创 2022-09-22 07:06:23 · 378 阅读 · 0 评论 -
一次使用JUnit + JPA 实现数据Migrate的实例介绍
Migrate 的方式大概有以下五种:1. 纯SQL层面的迁移2. 在项目中编写迁移代码3. 创建单独的项目用于迁移数据4. 在项目中使用Spring Boot 的单元测试5.在项目中使用 JPA+ JUnit (不使用Spring Boot)原创 2022-09-21 22:24:20 · 577 阅读 · 0 评论 -
JPA如何查询部分字段
JPA的一般用法是数据库表和实体类的对应, 查询类的时候会将所有的字段都查出来, 但是有时候存在一些只需要查询部分字段的状况,场景包括:1. 出于性能的考虑。数据表的字段比较多,或者存在大字段的状况, 如果把所有的查询出来, 性能势必不是很好。2. 出于安全的考虑。有一些特殊的字段没有必要也不希望查询出来, 比如:用户信息表, 用户的密码、手机号的敏感信息。对于场景1, 虽然可以使用字段懒加载的方式进行改善; 方式2 也可以查询出来之后再进行一层封装;但是这些处理方式都相对繁琐。是否有更简洁的方式呢?原创 2022-08-07 11:01:55 · 5567 阅读 · 0 评论 -
JPA Native Query(本地查询)及查询结果转换
Native Query ,本地查询, 是直接使用SQL语句进行查询,使用本地查询可以不需要查询整张表的字段, 而根据需要进行查询, 那么如何将查询的结果转换成需要的对象类型呢?原创 2022-08-01 22:53:46 · 5937 阅读 · 0 评论 -
Spring Boot项目CSRF (跨站请求伪造)攻击演示与防御
CSRF ,Cross-site request forgery,跨站请求伪造。是常见的网络攻击的方式之一,2007年曾被列为互联网20大安全隐患之一。攻击过程是攻击者伪造用户的浏览器请求,访问一个用户曾经访问过的网站, 使目标网站误以为是用户的操作而执行命令。本篇j基于Spring Boot创建项目,用来演示CSRF 的攻击过程。...原创 2022-07-17 12:50:09 · 1658 阅读 · 0 评论 -
org.hibernate.LazyInitializationException: could not initialize proxy xxx - no Session 错误解决
问题:使用hibernate的getReference()方法时返回could not initialize proxy的错误。发生场景:在Spring Boot项目中测试JPA的getReference() 方法,JPA的实现是Hibernate。 @Test public void getReference() { String id= "1"; Usr usr = em.getReference(Usr.class, id); Sys原创 2022-05-30 21:55:56 · 662 阅读 · 0 评论 -
Spring Boot 跨域访问的实现方式最全汇总
在基于Spring Boot框架的应用中, 需要跨域访问的场景有很多, 比如:* 应用内部: 在前后端分离的框架中, Spring Boot 提供后端服务* 应用外部: 作为微服务,提供对外的Rest服务接口Spring Boot应用中实现跨域访问的方式也有多种。原创 2022-05-12 06:56:32 · 585 阅读 · 0 评论