你好spring solon

Spring源码解析——@Transactional注解的声明式事物介绍

正文 面的几个章节已经分析了spring基于@AspectJ的源码,那么接下来我们分析一下Aop的另一个重要功能,事物管理。最全面的Java面试网站 事务的介绍 1.数据库事物特性 原子性 多个数据库操作是不可分割的,只有所有的操作都执行成功,事物才能被提交;只要有一个操作执行失败,那么所有的操作都 ......
注解 Transactional 源码 事物 Spring

Spring Boot 配置 Jackson

什么是 Jackson ? 有什么作用? Jackson 是 Spring Boot 内置的 Json 解析框架,用来完成出入参的序列化和反序列化。通常,我们会在 Controller 类中方法上,加上 @RequestBody 或者 @ResponseBody 注解,Spring Boot 会自动 ......
Jackson Spring Boot

Spring Boot 配置拦截器

通过拦截器,我们可以针对特定 URI 做拦截,做相关业务处理,比如检查用户是否登录,打印每个请求的处理耗时等。 一、新建一个拦截器 新建登录验证类 LoginValidationInterceptor.java: package site.exception.springbootintercepto ......
Spring Boot

博学谷学习记录 自我总结 用心分享 | Spring源码刨析

别再盲目的说spring有三级缓存了,两个缓存只是启动时为了解决循环依赖,spring启动后只有一个缓存有用 一、什么是循环依赖 循环依赖指的就是循环引用,就是两个或多个 bean 相互之间的持有对方,比如 CircleA 引用 CircleB , CircleB 引用 CircleC, Circl ......
自我总结 源码 Spring

Spring Boot + Redis 延时双删功能,实战来了!

一、业务场景 在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改Redis中的数据。 请求一:A修改数据库数据 B修改Redis数据 请求二:C修改数据库数据 D修改Redis数据 并发情况下就会存在A —> C —> D ......
实战 功能 Spring Redis Boot

Spring远程命令执行漏洞(CVE-2022-22965)原理研究

一、前置知识 SpringMVC参数绑定 为了方便编程,SpringMVC支持将HTTP请求中的的请求参数或者请求体内容,根据Controller方法的参数,自动完成类型转换和赋值。之后,Controller方法就可以直接使用这些参数,避免了需要编写大量的代码从HttpServletRequest中 ......
漏洞 命令 原理 Spring 22965

Java设计模式-策略模式-基于Spring实现

1、策略模式 1.1、概述 策略模式是一种行为设计模式,它允许在运行时选择算法的行为。它将算法封装在独立的策略类中,使得它们可以相互替换,而不影响客户端代码。这种模式通过将算法的选择从客户端代码中分离出来,提供了更大的灵活性和可维护性。 在Java中,策略模式的设计理念可以通过以下步骤实现: 定义一 ......
模式 设计模式 策略 Spring Java

「Java开发指南」如何在MyEclipse中使用JPA和Spring管理事务?(一)

本教程中介绍一些基于JPA/ spring的特性,重点介绍JPA-Spring集成以及如何利用这些功能。您将学习如何: 为JPA和Spring设置一个项目 逆向工程数据库表来生成实体 实现创建、检索、编辑和删除功能 启用容器管理的事务 MyEclipse v2023.1.2离线版下载 MyEclip ......
开发指南 MyEclipse 事务 指南 Spring

Spring Boot读取resource目录下文件失败解决方案及分析

背景 最近有个需求,就是需要从resources目录下读取文件返回给用户。在idea中运行时,有些resources下文件读取工具类能够正常获取读取到文件。但是通过java –jar的方式去运行jar包,此时resources下文件读取工具类读取文件就失效了。通过查询搜索,了解到了是读取的方式导致文 ......
resource 解决方案 文件 目录 方案

Spring Boot+Thymeleaf+MyBatis--推荐一个后端练手极佳的商城项目

项目整体架构 newbee-mall ├── src/main/java └── ltd.newbee.mall ├── common // 存放相关的常量配置及枚举类 ├── config // 存放 web 配置类 ├── controller // 存放控制类,包括商城端和后台管理系统中的 c ......
Thymeleaf MyBatis 商城 项目 Spring

Spring Cloud原理

SpringCloud原理 如果还没有学习过,建议先了解以下微服务 什么是微服务? 传统单体架构 业务量小,所有代码放在一个项目里即可。这些项目部署在一台服务器即可。整个项目所有服务器都由这台服务器提供。 优点:项目架构简单,适用于小型项目 缺点:维护困难,所有模块公用一个数据库,项目要求所有技术统 ......
原理 Spring Cloud

Spring Boot 跨域访问

出于安全的考虑,浏览器会禁止 Ajax 访问不同域的地址,在现如今微服务横行的年代,跨域访问是非常常见的。W3C 的 CORS (Cross-origin-resource-sharing) 规范中也已经允许跨域访问, 并被主流浏览器所支持,它们包括: Chrome 3+; Firefox 3.5+ ......
Spring Boot

Spring中StopWatch使用

import org.springframework.util.StopWatch; public class OTest { public static void main(String[] args) throws InterruptedException { StopWatch stopWat ......
StopWatch Spring

博学谷学习记录 自我总结 用心分享 | Spring Cloud高阶应用与原理

概述: 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Sp ......
自我总结 高阶 原理 Spring Cloud

Spring Cloud 中的分布式组件五花八门,我到底该怎么学?

分布式架构的演进 在软件行业,一个应用服务随着功能越来越复杂,用户量越来越大,尤其是互联网行业流量爆发式的增长,导致我们需要不断的重构应用的结构来支撑庞大的用户量,最终从一个简单的系统主键演变成了一个非常复杂的可以支撑高并发的高可用的分布式架构,但是一个系统再复杂也是不断演变来的,所以从另一方面来说 ......

Spring @AliasFor 用法

1. Spring @AliasFor 用法 参考资料: https://blog.csdn.net/ab411919134/article/details/81782269 Auth authMeta = AnnotatedElementUtils.findMergedAnnotation(han ......
AliasFor Spring

【Spring】BeanPostProcessor后置处理器

BeanPostProcessor后置处理器可以在Bean初始化前后做一些事情,注意这里是bean的初始化,不是实例化,BeanPostProcessor是一个接口,里面提供了两个方法,分别为postProcessBeforeInitialization(初始化之前)和postProcessAfte ......
BeanPostProcessor 处理器 Spring

Spring MVC 与 Spring Webflux 性能测试,谁更强?

如果你已经使用 Spring 一段时间或者是编程初学者,你一定听说过使用响应式编程比传统的线程池风格更好。 自 Spring 诞生以来,开发者创建 Java 企业应用程序就变得更加容易。它提供了在企业环境中使用 Java 语言所需的一切,支持 Groovy 和 Kotlin 作为 JVM 上的替代语 ......
Spring 性能 Webflux MVC

Spring Boot中发送邮件时,如何让发件人显示别名

之前,我们通过一系列文章,介绍了如何在Spring Boot中发送邮件: 发送邮件 添加附件 引用静态资源 邮件模版 已经包含了大部分的应用场景。但最近DD在做YouTube中文配音的时候,碰到一个问题: 如上图所示,收件人在客户端收到的时候,显示的名称是邮箱的前缀,而不是我们的产品名称,也就是邮箱 ......
发件人 别名 邮件 Spring Boot

Spring Cloud 2023 新特性 同步网关

网关不支持传统 Servlet 容器 Spring Cloud Gateway 需要运行在提供的 Netty 运行时。它不能在传统的 Servlet 容器中工作,也不能在构建为 WAR 时工作。WebFlux 使用了异步非阻塞的编程模型,相较于传统的 MVC Servlet 需要理解和适应新的编程范 ......
网关 特性 Spring Cloud 2023

Spring Boot 日期格式化

我们先了解下,为什么需要配置日期格式化? 通常情况下,发起一个 Http 请求,Spring Boot 会根据请求路径映射到指定 Controller 上的某个方法的参数上,接着,Spring 会自动进行类型转换。 对于日期类型的参数,Spring 默认是没有配置如何将字符串转换成日期类型的 未配置 ......
日期 格式 Spring Boot

spring-mvc 请求流程学习

参考:01、基础入门-SpringBoot2课程介绍_哔哩哔哩_bilibili 请求进入HttpServlet 的doGet方法 然后通过实现类org.springframework.web.servlet.FrameworkServlet#doGet() 调用 org.springframewo ......
spring-mvc 流程 spring mvc

Spring Batch 批处理框架,真心强呀!!

一、SpringBatch 介绍 Spring Batch 是一个轻量级、全面的批处理框架,旨在支持开发对企业系统的日常操作至关重要的健壮的批处理应用程序。Spring Batch 建立在人们期望的 Spring Framework 特性(生产力、基于 POJO 的开发方法和一般易用性)的基础上,同 ......
框架 真心 Spring Batch

spring扫描本项目包下类数量 方法数量

import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringB ......
数量 方法 项目 spring

Spring Cloud服务之Nacos作为注册中心与配置中心

1、创建maven父工程管理jar包版本 创建maven骨架,删除多余部分文件。只留pom文件,添加依赖 <packaging>pom</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>sprin ......
Spring Cloud Nacos

spring boot视频播放平台,播放视频很卡,有几种方案解决

1.首先 介绍场景:视频播放平台,系统使用 Springboot 和 Vue 编写。拥有前台和后台,前台进行视频播放,后台进行视频的上传,也可以上传音乐和图片,功能顺手都做了。 2.问题: 浏览器播放视频卡顿。视频卡顿问题需要攻克 2 关。 3.解决过程 1 )第一关:视频文件太大,浏览器加载时间长 ......
视频 方案 spring 平台 boot

springboot启动时指定spring.profiles.active

使用命令行直接运行jar文件: java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar 启动进程 nohup java -jar demo-0.0.1-SNAPSHOT.jar > log.file 2>&1 &上面的2 和 1 ......
springboot profiles spring active

Spring Cloud Alibaba服务的注册与发现之Nacos部署

1、Nacos官网介绍 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式 ......
Alibaba Spring Cloud Nacos

Spring Cloud相关组件说明

1、Spring Cloud版本 现有Spring Cloud有两代实现,分为Spring Cloud Netflix和Spring Cloud Alibaba,由于SpringCloud Netflix版一些重要组件如注册中心Euraka、Ribbon已经不再迭代更新了,Spring Cloud ......
组件 Spring Cloud

面试官:Spring Boot 最大连接数和最大并发数是多少?问倒一大片!

每个Spring Boot版本和内置容器不同,结果也不同,这里以Spring Boot 2.7.10版本 + 内置Tomcat容器举例。 概序 在SpringBoot2.7.10版本中内置Tomcat版本是9.0.73,SpringBoot内置Tomcat的默认设置如下: Tomcat的连接等待队列 ......
大片 Spring Boot