Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by DataSource dataSource
🔒 Spring Batch Project with Multi-File Processing
Resource Awareness: The interface provides a setResource(Resource resource) method that allows the reader to be aware of the resource it's currently processing.
【SpringBoot 3.x 第17节】Spring Batch真的能解决你的批处理噩梦吗?深度解析批量数据处理的艺术与实战!
原创 于 2025-08-25 19:00:00 发布 · 561 阅读 · 14 · 12 · CC 4.0 BY-SA版权 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 文章标签: #spring boot #batch #Spring Batch #SpringBoot 3.x #java #后端 🏆本文收录于《滚雪球学Spring Boot》,专门攻坚指数提升,2025 年国内最系统+最强(更新中)。 本专栏致力打造最硬核 Spring Boot 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。 演示环境说明: 开发工具:IDEA 2021.3 JDK版本: JDK 17(推荐使用 JDK 17 或更高版本,因为 Spring Boot 3.x 系列要求 Java 17,Spring Boot 3.5.4 基于 Spring Framework...
5 TestContainers Strategies That Revolutionize Java Integration Testing
As a best-selling author, I invite you to explore my books on Amazon. Don't forget to follow me on Medium and show your support. Thank you! Your support means the world! Testing is a critical part of software development, especially when dealing with complex applications that interact with multiple systems. As developers, we often face challenges creating realistic test environments that accurately reflect production scenarios.
Addressing Memory Issues, Optimizing Code: Glide
Memory management issues and optimizing code for efficiency are critical aspects of software development, especially in resource-constrained environments like mobile devices. Glide stands out as a remarkable library tailored for efficiently displaying images on Android devices and beyond. With its robust caching mechanism, handling caching to disk or memory becomes almost effortless.
mybatis 集成neo4j功能实现
前言 MyBatis是一个基于Java语言的持久层框架,它通过XML描述符或注解将对象与存储过程或SQL语句进行映射,并提供了普通SQL查询、存储过程和高级映射等操作方式,使得操作数据库变得非常方便。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 Neo4j 是一个高性能的NOSQL 图数据库,它将结构化数据存储在图中而不是表中。它非常适合于表示和查询高度连接的数据,例如社交网络、推荐系统和知识图谱等。 Neo4j数据模型和查询语言 Cypher 与传统的关系型数据库有很大的不同。因此原生MyBatis 并不支持 Neo4j,需要引入第三方jar包,并通过配置和编码的方式进行集成。 一、引入jar包依赖 POM.XML 添加依赖neo4j-jdbc-driver mybatis-spring-boot-starter <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-jdbc-driver</artifactId> <version>4.0.0</version>...
Java单点登录(SSO)实现指南:深度解析与全面实践-CSDN博客
目录 引言 总结 引言 随着互联网应用的不断发展,用户需要在多个系统之间无缝切换,而单点登录(Single Sign-On,简称SSO)技术应运而生。本篇博客将深入探讨Java中如何实现单点登录,通过详细代码和深度解析,带领读者逐步了解SSO的原理、流程和具体实现。 一、什么是单点登录(SSO)? 单点登录是一种身份认证的机制,允许用户在访问多个相关但独立的软件系统时,只需一次登录,便可无缝访问所有系统。这大大提高了用户体验,并简化了管理和维护的复杂性。 二、SSO的工作原理 SSO的工作原理基于令牌(Token)和身份验证协议。用户一旦登录系统,将获得一个令牌,该令牌包含了用户的身份信息。在之后的访问中,用户只需提供该令牌,而无需再次输入用户名和密码。 三、SSO的具体实现 在深入代码之前,让我们先理解SSO的核心概念。 1. 令牌(Token)机制 SSO通过使用令牌实现用户的无缝切换。用户在登录成功后,获得一个令牌,该令牌包含了用户的身份信息。在之后的访问中,用户只需提供有效的令牌,而无需再次输入用户名和密码。 2.
SpringSecurity实现Remember-Me实践-阿里云开发者社区
【1】基于会话技术的实现 也就是基于Cookie的实现,用户信息通过某种规则进行加密然后生成一个字符串设置为cookie。 这里name="remember-me"表示“记住我”的复选框,默认key是remember-me。 如下所示,提交表单时请求参数会带上remember-me: on: 提交表单后响应头会设置cookie-remember-me,默认是14天有效期。其值加密规则如下所示: 从这个规则也可以看出,如果用户修改了密码那么记住我功能将会自动失效。 得到signatureValue规则如下所示(Md5Hex(username + ":" + expiryTime + ":" + password + ":" + key)): 得到最终cookie值源码如下: .
JAVAEE框架之Spring事务-阿里云开发者社区
JAVAEE框架之Spring 八.Spring事务 8.1 转账业务 AccountServiceImple 转账业务实现类代码 /** * 转账业务 * @param sourceId * @param targetId * @param money */ public void transfer(Integer sourceId, Integer targetId,Double money) { //1.根据id,查询转出账户 Account source=accountDao.selectAccount(sourceId); //2.根据id,查询转入账户 Account target=accountDao.selectAccount(targetId); //3.转出账户减钱 source.setMoney(source.getMoney()-money); //4.转入账户加钱 target.setMoney(target.getMoney()+money); //5.更新转出账户 accountDao.updateAccount(source);...
详解Spring多线程下如何保证事务的一致性-51CTO.COM
2023-10-08 08:29:31 我们先来大概的了解下Spring事务的工作原理,核心技术是通过AOP实现,将获取的Connection对象绑定到当前线程上下文中(ThreadLocal)。 环境:Spring5.3.23 1.
电商项目part06 微服务网关整合OAuth2.0授权中心
微服务网关整合 OAuth2.0 思路分析 网关整合 OAuth2.0 有两种思路,一种是授权服务器生成令牌, 所有请求统一在网关层验证,判断权 限等操作;另一种是由各资源服务处理,网关只做请求转发。 比较常用的是第一种,把API网关作 为OAuth2.0的资源服务器角色,实现接入客户端权限拦截、令牌解析并转发当前登录用户信息给微 服务,这样下游微服务就不需要关心令牌格式解析以及OAuth2.0相关机制了。 网关在认证授权体系里主要负责两件事: (1)作为OAuth2.0的资源服务器角色,实现接入方访问权限拦截。 (2)令牌解析并转发当前登录用户信息(明文token)给微服务 微服务拿到明文token(明文token中包含登录用户的身份和权限信息)后也需要做两件事: (1)用户授权拦截(看当前用户是否有权访问该资源) (2)将用户信息存储进当前线程上下文(有利于后续业务逻辑随时获取当前用户信息) 大致流程 授权中心 <dependency> <groupId>org.springframework.cloud</groupId>...
spring 动态代理_今天月亮不加班的博客-CSDN博客
动态代理 动态代理: ● 特点:字节码随用随创建,随用随加载 ● 作用:不修改源码的基础上对方法增强 ● 分类: ○ 基于接口的动态代理 ○ 基于子类的动态代理 ● 涉及的类:java.lang.reflect.Proxy ● 提供者:jdk官方 如何创建代理对象:使用Proxy的newProxyInstance方法 创建代理对象的要求:被代理的类最少实现一个接口,如果没有则不能创建。 newProxyInstance方法的参数: ● classLoader:类加载器 它是用于加载代理对象字节码文件的,和被代理对象使用相同的类加载器。是固定写法。 ● Class[]:字节码数组 它是用于让代理对象和被代理对象有相同的方法。固定的写法。 ● invocationHandler:用于提供增强的代码 它是让我们写如何代理。一般都是写一个该接口的实现类。通常情况下都是匿名内部类,但不是必须。此接口的实现类都是谁用谁写 public interface IProducer { Float sellProduct(Float money); void afterSell(Float...
【Spring Security】的RememberMe功能流程与源码详解,基础-进阶-升级-扩展,你学会了吗?
前言 之前我已经写过好几篇权限认证相关的文章了,有想复习的同学可以查看【身份权限认证合集】。今天我们来聊一下登陆页面中“记住我”这个看似简单实则复杂的小功能。 如图就是博客园登陆时的“记住我”选项,在实际开发登陆接口以前,我一直认为这个“记住我”就是把我的用户名和密码保存到浏览器的 cookie 中,当下次登陆时浏览器会自动显示我的用户名和密码,就不用我再次输入了。 直到我看了 Spring Security 中 Remember Me 相关的源码,我才意识到之前的理解全错了,它的作用其实是让用户在关闭浏览器之后再次访问时不需要重新登陆。 原理 如果用户勾选了 “记住我” 选项,Spring Security 将在用户登录时创建一个持久的安全令牌,并将令牌存储在 cookie 中或者数据库中。当用户关闭浏览器并再次打开时,Spring Security 可以根据该令牌自动验证用户身份。 先来张图感受下,然后跟着阿Q从简单的Spring Security 登陆样例开始慢慢搭建吧! 基础版 搭建 初始化sql CREATE TABLE `sys_user_info` ( `id`...
Testing Applications With JPA Buddy and Testcontainers
Testing is a cornerstone of any application lifecycle. Integration testing is a type of testing that helps to ensure that an application is functioning correctly with all of its external services, such as a database, authorization server, message queue, and so on. With Testcontainers, creating such an environment for integration testing becomes easier. However, setting just the environment is not enough for proper testing. Preparing test data is also an essential task.
springboot 3 下连接 mysql 数据库以及整合 mybatis-plus
测试示例 在 Springboot 3.x版本下整合 mysql 以及mybatis-plus,并进行简单测试,解决实现过程中所遇到的常见 Bug。 引入依赖 <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- mybatis-plus 3.5.3 才支持 spring boot 3--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3</version> </dependency> 配置...
springboot整合quartz项目使用(含完整代码)_springboot quartz_小lee学编程的博客-CSDN博客
前言:quartz是一个定时调度的框架,就目前市场上来说,其实有比quartz更优秀的一些定时调度框架,不但性能比quartz好,学习成本更低,而且还提供可视化操作定时任务。例如xxl-Job,elastic-Job这两个算是目前工作中使用比较多的定时调度框架了,适配于分布式的项目,性能也是很优秀。这是很多人就很疑惑,既然这样我们为什么还要了解学习quartz呢?我个人觉得学习quartz有两方面,首先xxl-Job,elastic-Job这些框架都是基于quartz的基础上二次开发的,学习quartz更有利于我们加强理解定时调度。第二方面就是工作需求,有一些传统互联网公司还是有很多项目是使用quartz来完成定时任务的开发的,不懂quartz的话,老板叫你写个定时任务都搞不定。 1.
JQueue: A Library to Implement the Outbox Pattern
In microservices or any other event-based architecture, in some use cases, a service might require us to make changes to their own local database and also publish an event. That event is then consumed by other services. To have a consistent software system, it is mandatory that these two actions get performed atomically. Both actions need to complete successfully, or none of them need to complete. There should not be another way. An elegant way to solve this is by using the Outbox Pattern.
Spring Boot使用动态数据源
有这样一个场景,现在要开发一个数据API功能,用户自己编写数据源脚本,在界面任意选择一个数据源,可选择的数据源列表中数据源类型是多样的,可以是关系数据库,也可以是NoSql,在使用这个功能的时候,后台需要根据用户的选择,会开启一个数据源连接进行各种操作,因为用户的选择是任意的随机的,如果每次都去重新创建数据源,这样会产生很多数据源,涉及到要去管理他们的连接和关闭等等,而且如果是大并发情况下,就有可能出现网络IO、内存等耗尽,显然这是存在性能问题的,所以就需要一种机制,只创建一个数据源,当需要使用新的数据源时,可以在上下文中动态的切换,这就是我今天要介绍的动态数据源。 首先有个概念要澄清一下,这里说的动态数据源并不是多数据源,Spring Boot是支持多数据源的,多数据源是指在Spring Boot上下文中可以配置多个DataSource,有一个是首选的,Spring Boot的自动化配置默认使用的就是首选数据源,多数据源使用时通过Spring容器的注入来指定,这就是Spring Boot多数据源。...
【Spring Cloud】Spring Cloud Oauth2 + Gateway 微服务权限管理方案
项目架构 将服务分为以下几个层次: security-gateway:网关层,负责接收所有网络请求、转发以及权限鉴定 security-auth:认证层,负责对登录用户进行认证 security‐discovery:注册中心 security-api:资源层,提供被访问的资源,用户被鉴权之后才可被访问 这样的设计使得各个服务各司其职,认证层进行认证,网关进行转发和鉴权,资源服务只专注于自己的业务逻辑,无需关心权限。也就是说安全校验逻辑只存在于认证服务和网关服务中。 权限数据库设计 在前文【Spring Security + Redis + JWT 实现动态权限管理】的基础上,构建用户组-用户-角色-资源的关系进行权限控制。与前文区别在于,最终用户拥有的权限 = 用户组对应的权限 + 用户本身对应的权限。 具体实现 认证服务 pom.xml 添加相关依赖,主要包括 Spring Security、Oauth2、JWT、Redis、eureka等相关依赖。 <dependencies> <dependency>...
SpringBoot 单元测试--JUnit5
1.1、JUnit5 构成 JUnit5 由三个不同子项目的几个不同模块组成。 1)JUnit Platform: 是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。 2)JUnit Jupiter: 提供了JUnit5的新的编程模型,是JUnit5新特性的核心。内部包含了一个测试引擎,用于在Junit Platform上运行。 3)JUnit Vintage: 由于JUint已经发展多年,为了照顾老的项目,其提供了兼容JUnit4.x,Junit3.x的测试引擎。 1.2、JUnit5 配置 1.2.1、导入 Junit5 开发场景 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 1.2.2、Junit5 开发场景自动导入依赖项 2.1、Jnuit5 测试代码开发 2.1.1、测试代码格式...
What's New in Spring 2.5: Part 1
Nov 19, 2007 22 min read Write for InfoQ Join a community of experts. Increase your visibility. Grow your career.Learn more Introduction Since its inception the Spring Framework has consistently focused on the goal of simplifying enterprise application development while providing powerful, non-invasive solutions to complex problems. With the release of Spring 2.0 just over a year ago, these themes advanced to a new level.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with DataSource
Contact DataSource, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack