Spring异步Async和事务Transactional注解
Spring开发中我们我们常常用到@Transaction和@Async,但这2个注解加在一起很多的开发者不敢用,担心事务不生效。下面我们就仔细讲解一下这2个注解同时运用,文章用3个场景讲述它们之间的运用,相信看完本篇文章你就能灵活运用这2个注解了。
场景一:@Async + @Transac...[2023/2/6]
Spring Security Form表单认证代码实例
Spring Security Form表单认证
Spring Security中,常见的认证方式可以分为HTTP层面和表单层面,如下:
HTTP基本认证
Form表单认证
HTTP摘要认证
Spring Security Form表单实现实例:
1、pom依赖
1 <!-- ...[2023/2/1]
扒一扒Bean注入到Spring的那些姿势,你会几种?扒一扒Bean注入到Spring的那些姿势,你会几种?
大家好,我是三友~~
这篇文章我准备来扒一扒Bean注入到Spring的那些姿势。
其实关于Bean注入Spring容器的方式网上也有很多相关文章,但是很多文章可能会存在以下常见的问题
注入方式总结的不全没有分析可以使用这些注入方式背后的原因没有这些注入方式在源码中的应用示例...
所以...[2023/2/1]
Windows下使用Graalvm将Springboot应用编译成exe大大提高启动和运行效率Windows下使用Graalvm将Springboot应用编译成exe大大提高启动和运行效率
GraalVM安装
GraalVM安装
安装
请前往GraalVM官网 下载 GraalVM Community 22.3,注意当前支持的Springboot的GraalVM版本必须是22.3
笔者这里下载的Java版本为17,如下图
安装GraalVM的方法与安装JAVA方法大致相同,...[2023/2/1]
SpringBoot项目动态定时任务之 ScheduledTaskRegistrar(解决方案一)
前言
? 在做SpringBoot项目的过程中,有时客户会提出按照指定时间执行一次业务的需求。
? 如果客户需要改动业务的执行时间,即动态地调整定时任务的执行时间,那么可以采用SpringBoot自带的ScheduledTaskRegistrar类作为解决方案来实现。
? 在单一使用S...[2023/2/1]
SpringBoot基于过滤器和内存实现重复请求拦截功能
对于一些请求服务器的接口,可能存在重复发起请求,如果是查询操作倒是并无大碍,但是如果涉及到写入操作,一旦重复,可能对业务逻辑造成很严重的后果,例如交易的接口如果重复请求可能会重复下单。
这里我们使用过滤器的方式对进入服务器的请求进行过滤操作,实现对相同客户端请求同一个接口的过滤。
@Sl...[2023/2/1]
springboot 防止重复请求防止重复点击的操作
利用 springboot + redis 实现过滤重复提交的请求,业务流程如下所示,首先定义一个拦截器,拦截需要进行过滤的URL,然后用 se ion + URL 作为唯一 key,利用 redis setnx 命令,来判断请求是否重复,如果 key set 成功,说明非...[2023/2/1]
详解SpringBoot中的统一功能处理的实现
目录前言一、用户登录权限效验1.1 最初的用户登录验证1.2 Spring AOP 用户统一登录验证的问题1.3 Spring 拦截器1.4 拦截器实现原理1.5 扩展:统一访问前缀添加二、统一异常处理三、统一数据返回格式3.1 为什么需要统一数据返回格式3.2 统一数据返回格式的实现3.3 @Co...[2023/1/30]
SpringBoot源码学习3——SpringBoot启动流程
系列文章目录和关于我
一丶前言
在 《SpringBoot源码学习1——SpringBoot自动装配源码解析+Spring如何处理配置类的》中我们学习了SpringBoot自动装配如何实现的,在 《Spring源码学习笔记12——总结篇IOC,Bean的生命周期,三大扩展点》我们总结了Spri...[2023/1/20]
SpringBoot加载读取配置文件过程详细分析
目录配置文件的读取顺序多坏境的配置文件个性化配置自定义配置文件名称和路径加载yml文件 springboot默认读取的配置文件名字是:“application.properties”和“application.yml”,默认读取四个位置的文件:根目录下...[2023/1/20]
统一返回对象封装和统一异常捕获封装springboot starter
好久没有更新文章了,高龄开发没什么技术,去了外包公司后没怎么更新文章了。今天分享下统一处理starter,相信开发web系统的时候都是会涉及到前后端的交互,而后端返回数据的时候一般都会统一封装一个返回对象和统一处理异常,一般情况下都是在controller的每个方法中调用封装的对象,把相应的数据...[2023/1/18]
SpringBoot Security实现单点登出并清除所有token
目录需求记录token清除token解决登出时长过长 需求
A、B、C 系统通过 o 服务实现登录A、B、C 系统分别获取 Atoken、Btoken、Ctoken 三个 token其中某一个系统主动登出后,其他两个系统也登出至此全部 Atoken、Btoken、Ctoken 失效
记录to...[2023/1/16]
SpringMVC HttpMessageConverter报文信息转换器SpringMVC HttpMessageConverter报文信息转换器
目录1、@RequestBody2、RequestEntity3、@ResponseBody4、SpringMVC处理json5、@RestController注解6、ResponseEntity6.1、文件下载6.2、文件上传 HttpMe ageConverter,报文信息转换器,将请求报文转换...[2023/1/16]
SpringMVC @RequestMapping注解作用详解SpringMVC @RequestMapping注解作用详解
目录1、@RequestMapping注解的功能2、@RequestMapping注解的位置3、@RequestMapping注解的value属性4、@RequestMapping注解的method属性5、@RequestMapping注解的params属性(了解)6、@RequestMapping...[2023/1/16]
Spring项目中用了这种解耦模式,经理对我刮目相看
前言
不知道大家在项目中有没有遇到过这样的场景,根据传入的类型,调用接口不同的实现类或者说服务,比如根据文件的类型使用 CSV解析器或者JSON解析器,在调用的客户端一般都是用if else去做判断,比如类型等于JSON,我就用JSON解析器,那如果新加一个类型的解析器,是不是调用的客户端还要修...[2023/1/11]
Spring 6 源码编译和高效阅读源码技巧分享
一. 前言
Spring Boot 3 RELEASE版本于 2022年11月24日 正式发布,相信已经有不少同学开始准备新版本的学习了,不过目前还不建议在实际项目中做升级,毕竟还有很多框架和中间件没出适配版本。此次Spring Boot里程碑的升级也要求了最低JDK 17 和 Spring F...[2022/12/12]
SpringBoot向Excel模板中写入数据并下载 (无需获取file对象及模板绝对路径)
之前用获取模板路径的方式测试没问题打包后就有问题了
莫名出现一个! 找了很多教程尝试无果 最终使用下面这个方式
无需获取file对象以及模板路径的方式进行写入下载
(那个设置浏览器编码没有测试不知道能不能用!!!)
public void export(SampleFilterA...[2022/12/12]
SpringBoot单点登录实现过程详细分析
目录1.具体实现步骤2.代码展示后台代码前台代码效果展示 1.具体实现步骤
添加拦截器,设置UUID作为唯一标识,存入数据库中
通过当前登陆者的账户进行查询
如果当前登陆者se ion中存入的UUID与我们数据库中的UUID值相同则通过
否则返回false,表示已在其他设备或浏览器登...[2022/12/5]
SpringCloud Alibaba(二) - Sentinel,整合OpenFeign,GateWay服务网关
1、环境准备
1.1Nacos
单机启动:startup.cmd -m standalone
1.2 Sentinel
启动命令:java -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=localhost:8858 -Dproject...[2022/11/28]
一文带你了解 Spring 的@Enablexxx 注解 - zi-you
layout: post
categories: Java
title: 一文带你了解 Spring 的@Enablexxx 注解
tagline: by 子悠
tags:
- 子悠
前面的文章给大家介绍 Spring 的重试机制的时候有提到过 Spring 有很多 @Enable 开...[2022/11/28]
【Spring系列】- Bean生命周期底层原理
Bean生命周期底层原理
??生命不息,写作不止
?? 继续踏上学习之路,学之分享笔记
?? 总有一天我也能像各位大佬一样
?? 一个有梦有戏的人 @怒放吧德德
??分享学习心得,欢迎指正,大家一起学习成长!
前言
上次学到动手模拟Spring底层实现,简单学习了一下Sprin...[2022/11/21]
【Spring系列】- Spring事务底层原理
Spring事务底层原理
??生命不息,写作不止
?? 继续踏上学习之路,学之分享笔记
?? 总有一天我也能像各位大佬一样
?? 一个有梦有戏的人 @怒放吧德德
??分享学习心得,欢迎指正,大家一起学习成长!
目录Spring事务底层原理前言实验准备配置文件准备数据表Sprin...[2022/11/21]
Spring Cloud Gateway 使用示例
Spring Cloud Gateway 使用示例
作者: Grey
原文地址:
博客园:Spring Cloud Gateway 使用示例
CSDN:Spring Cloud Gateway 使用示例
说明
Spring Cloud Gateway 用于构建 API 网关,基于 Spr...[2022/11/19]
RestTemplate Get请求实现bean参数传递详解RestTemplate Get请求实现bean参数传递详解
目录项目场景问题描述原因分析解决方案 项目场景
Spring 的 RestTemplate 是一个健壮的、流行的基于 Java 的 Http客户端。
RestTemplate实现request param参数传送,如果如下所示,直接传一个map对象,调试之后是不会接收到参数的
Map&l...[2022/11/19]
Spring系列中的beanFactory与ApplicationContextSpring系列中的beanFactory与ApplicationContext
目录一、BeanFactory二、ApplicationContext三、二者区别四、总结 一、BeanFactory
BeanFactory 是 Spring 的“心脏”。它就是 Spring IoC 容器的真面目。Spring 使用 BeanFactory 来实例化、...[2022/9/20]
Spring循环依赖的解决方法详解Spring循环依赖的解决方法详解
目录什么是循环依赖:Spring实例Bean的本质循环依赖主要场景什么情况下循环依赖可以被解决解决方式 说明:spring如何解决循环依赖,是面试中经常问到的题目,今天我们就来分享一下spring是如何解决循环依赖问题的。
什么是循环依赖:
我们先来看看官方文档的说法:
通俗来讲,...[2022/8/16]
Spring @Autowired注解超详细示例
目录前言一、依赖注入的方式手动注入自动装配二、注解@Autowired的自动装配原理@Autowired自动装配过程实现原理①首先看看spring的源代码定义②核心逻辑在buildAutowiringMetadata中③InjectionMetadata类④ 实现注入逻辑⑤调用InjectionMe...[2022/8/16]
Spring @Order注解使用详解
目录前言例子一例子二例子三实例论证源码分析 前言
很长一段时间没有写博客了,今天一时心血来潮,突然写出这篇文章就很突兀。但是看到网上关于Spring的@Order注解的不是特别准确的结论,想着还是表达一下看法,当然也是通过写文章来让自己的思路更清晰一点,如果有不是很赞同的部分,希望可以一起讨论。...[2022/8/15]
spring的pointcut正则表达式的实现
目录1.Pointcut表达式各部分的约束规则2.拆分pointcut表达式3.过滤 1.Pointcut表达式各部分的约束规则
在spring中配置切面或者数据库的事务会要求:对具体方法或者是一类特征相同的方法添加日志,事务,或者其他对原方法的增强。这时候就会用到pointcut表达式对方法进...[2022/8/2]
Spring?Security密码解析器PasswordEncoder自定义登录逻辑
目录一、Pa wordEncoder密码解析器详解1.接口介绍2.内置解析器介绍3.BCryptPa wordEncoder简介4.代码演示二、自定义登录逻辑1.编写配置类2.自定义逻辑3.查看效果 一、Pa wordEncoder密码解析器详解
Spring Security要求容器中必须有P...[2022/8/1]
Spring?Security自定义登录页面认证过程常用配置
目录一、自定义登录页面1.编写登录页面2.修改配置类3.编写控制器二、 认证过程其他常用配置1.失败跳转1.1编写页面1.2修改表单配置1.3添加控制器方法1.4设置fail.html不需要认证2.设置请求账户和密码的参数名2.1源码简介2.2修改配置2.3修改页面3.自定义登录成功处理器3.1源码...[2022/8/1]
IntelliJ?IDEA运行SpringBoot项目的详细步骤
目录步骤一:配置maven步骤二:配置JDK环境步骤三:检查数据库的配置步骤四:数据库连接 本篇超级详细案例截图教学 IDEA如何运行SpringBoot项目,图片点击可放大仔细看
Java编译工具以及环境准备:
IDEA JDK1.8 MySQL8.0 Maven
步骤一:配置m...[2022/8/1]
Spring?Data?Exists查询最佳方法编写示例
目录简介领域模型如何不使用Spring Data来写Exists查询?用findBy查询模拟存在使用实例查询来检查存在性如何使用Spring Data编写Exists查询用existsBy查询方法检查存在性用COUNT SQL查询来检查存在性用CASE WHEN EXISTS SQL查询来检查存在性...[2022/8/1]
SpringCloud?Eureka服务治理之服务注册服务发现
目录什么是EurekaEureka核心概念服务注册和服务发现服务注册服务发现Eureka实战Eureka服务端单节点构建Eureka服务端集群构建Eureka客户端构建 什么是Eureka
Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心,用于提供服务...[2022/8/1]
SpringSecurity实现访问控制url匹配
目录一、访问控制url匹配1.anyRequest()2.antMatcher()3.regexMatchers()3.1介绍3.2两个参数时使用方式 一、访问控制url匹配
在前面讲解了认证中所有常用配置,主要是对http.formLogin()进行操作。而在配置类中 http.authori...[2022/8/1]
Java?axios与spring前后端分离传参规范总结
目录前言一、@RequestParam注解对应的axios传参方法1.1.params传参(推荐)1.2.FormData传参1.3.qs.stringfy传参二、@RequestBody的axios传参方法 前言
前后端分离开发的场景下,开发人员的工作内容更加专注与专业,但是也产生了一些额外的...[2022/8/1]
SpringBoot集成quartz实现定时任务详解
目录准备知识点什么是QuartzQuartz的体系结构什么是Quartz持久化实现案例 - 单实例方式实现案例 - 分布式方式后端实现前端实现测试效果 准备知识点
需要了解常用的Quartz框架。
什么是Quartz
来源百度百科, 官网地址:http: www.quartz-sched...[2022/8/1]
SpringBoot使用Minio进行文件存储的实现SpringBoot使用Minio进行文件存储的实现
目录一、minio二、SpringBoot 使用 Minio 进行文件存储三、测试 一、minio
MinIO 是一个高性能的对象存储原生支持 Kubernetes 部署的解决方案。 MinIO 提供了一个 Amazon Web Services S3 兼容 API 并支持所有核心 S3 功能。...[2022/7/25]
Spring Boot详解配置文件有哪些作用与细则
目录一.配置文件的作用二.配置文件的格式三.properties配置文件的说明1.properties基本语法2.读取配置文件3.properties的缺点四.yml配置文件的说明1.yml基本语法2.读取配置文件3.配置对象4.配置集合五.properties和yml的区别 一.配置文件的作用
...[2022/7/25]
SpringBoot实现扫码登录的项目实践SpringBoot实现扫码登录的项目实践
目录一、首先咱们需要一张表二、角色都有哪些三、接口都需要哪些?四、步骤五、疯狂贴代码Spring Boot中操作WebSocket 一、首先咱们需要一张表
这表是干啥的呢?就是记录一下谁扫码了。谁登录了。
User_Token表
字段如下:
uuid : 用于确保唯一性userId :...[2022/7/20]
SpringBoot超详细深入讲解底层原理SpringBoot超详细深入讲解底层原理
目录手写springbootSpringboot项目自动配置小结 手写springboot
在日常开发中只需要引入下面的依赖就可以开发Servlet进行访问了。
<dependency>
<groupId>org.springframework.boot</...[2022/7/19]
Spring?Boot?整合JPA?数据模型关联使用操作(一对一、一对多、多对多)
目录表关联一对一一对多和多对一多对多 表关联
上一篇介绍了JPA的简单使用,这一篇介绍JPA在表关联上的使用
一对一
配置参数JPA对于数据实体一对一映射使用的是@OneToOne注解。
代码
User用户表
/**
* 用户信息
* @author daify
...[2022/7/19]
Springboot深入讲解nocos的整合与使用
目录前言1, 创建工程2,启动nacos-server服务3,编写controller进行动态配置生效4,添加配置文件boostrap.yaml5,nacos配置 前言
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现...[2022/7/19]
Spring Boot详解各类请求和响应的处理方法
目录1. HttpServletRequest与HttpServletResponse2. GET类型的请求2.1 tudents?current=1&limit=202.2 tudent/1233. POST类型的请求4. 响应HTML格式的数据4.1 使用ModelAndView4....[2022/7/19]
Spring?Boot之Validation自定义实现方式的总结
目录Validation自定义实现方式Spring Boot Validation定制使用自定义的注解自定义执行Validator自定义Validation注解场景说明源码总结 Validation自定义实现方式
Spring Boot Validation定制
虽然在Spring Boot...[2022/7/4]
springboot?接收LocalDateTime方式
目录1.标准日期格式转换2.非json请求时间戳转换3.json请求时间戳转换4.序列化扩展5.swagger支持 本文基于jdk8。
1.标准日期格式转换
本类型是指前端传递类似"yyyy-MM-dd HH:mm: "格式字符串,后端以 LocalDateTime类型接...[2022/7/4]
SpringCloud?eureka(server)微服务集群搭建过程
目录工作原理:eureka 高可用集群项目创建:Maven 依赖本地hosts文件修改启动服务测试 工作原理:
Spring Cloud框架下的服务发现Eureka包含两个组件
分别是: Eureka Server与Eureka ClientEureka Server,也...[2022/7/4]
Spring?AOP中三种增强方式的示例详解
目录什么是AOP为什么需要AOPAOP术语@Before@After@Around 什么是AOP
AOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的...[2022/7/4]
SpringCloud?Tencent?全套解决方案源码分析
目录Spring Cloud Tencent 是什么?项目源码地址一、安装北极星二、服务注册与发现三、配置管理四、服务限流五、服务路由六、限流熔断 Spring Cloud Tencent 是什么?
Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。Spring Clo...[2022/7/4]
SpringBoot快速通关自动配置应用
@EnableAutoConfiguration
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Impor...[2022/7/4]