springboot springmvc spring

Spring Boot中如何优雅地实现异步调用?

前言 SpringBoot想必大家都用过,但是大家平时使用发布的接口大都是同步的,那么你知道如何优雅的实现异步呢? 这篇文章就是关于如何在Spring Boot中实现异步行为的。但首先,让我们看看同步和异步之间的区别。 同步编程:在同步编程中,任务一次执行一个,只有当一个任务完成时,下一个任务才会被 ......
Spring Boot

某大厂面试题:说一说Java、Spring、Dubbo三者SPI机制的原理和区别

大家好,我是三友~~ 今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。 其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是简单地介绍了一下Java、Spring的SPI机制,并没有进行深入,所以本篇就来深入聊一聊这三者的原理和区 ......
原理 机制 Spring Dubbo Java

Java线程池和Spring异步处理高级篇

开发过程中我们会遇到很多使用线程池的场景,例如异步短信通知,异步发邮件,异步记录操作日志,异步处理批量Excel解析。这些异步处理的场景我们都可以把它放在线程池中去完成,当然还有很多场景也都可以使用线程池,掌握线程池后开发中自己灵活应用。 例如在生成订单的时候给用户发送短信,生成订单的结果不应该被发 ......
线程 Spring Java

深入理解Spring的Bean定义对象BeanDefinition-面试重点

Spring注解这篇文章中讲到了Spring的组件,组件加载到Spring容器中也就是Spring容器中的Bean对象,想要更深理解Spring中的Bean对象,那对这个BeanDefinition一定要有深入的了解,它是构造出来Bean对象的一切基础,比如Bean的作用域,Bean的注入模型,Be ......
BeanDefinition 对象 重点 Spring Bean

Solon2 与 Spring Boot 的区别

一个高效的应用开发框架:更快、更小、更简单。 启动快 5 ~ 10 倍;qps 高 2~ 3 倍;运行时内存节省 1/3 ~ 1/2;打包可以缩到 1/2 ~ 1/10;同时支持 jdk8, jdk11, jdk17, jdk19。 ......
Solon2 Spring Solon Boot

【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务

问题描述 在 Spring Boot 项目中,使用 Redisson 连接 Azure Redis 服务,如下是详细的操作步骤(项目源代码文末可下载) 示例步骤 第一步: 在 Spring Boot 的项目中,添加 redisson-spring-boot-starter 依赖 在项目的pom.xm ......

【SpringBoot】还不会SpringBoot项目模块分层?来这手把手教你

前言 🍊缘由 经常看到网上很多优秀的开源项目中,代码简洁,模块分层完美。反观自己代码层级混乱,,却不知如何整理分层。此文手把手教你一步一步创建模块,左手右手一个慢动作。结合本人实际开发及个人项目中分层思路的分享,大神请勿喷。 ⏲️本文阅读时长 约25分钟 🎯主要目标 熟练掌握SpringBoot ......
SpringBoot 模块 项目

Spring Cloud Alibaba 整合 Seata 实现分布式事务

在Spring Boot单体服务中,添加@Transactional注解就能实现事务。在单体服务中,执行事务都是在同一个数据库下进行。但是随着业务越来越复杂,数据量越来越大会进行分库分表。在微服务场景下,每个服务都有自己的数据库。之前的单体事务无法处理跨库的事务,这个时候就需要使用分布式事务。 前面 ......
分布式 事务 Alibaba Spring Cloud

Spring Cloud Alibaba实现服务的无损下线功能

1、背景 最近用到了Spring Cloud Alibaba开发微服务,在开发的过程中发现,当我们的服务上线或下线的时候,我们的Spring Cloud Gateway需要一段时间才能感知到,那么有没有办法能够让服务立即感知到呢?答案是可以的。 此种实现方式是我自己记录下,目前未在生产环境中使用,此 ......
下线 Alibaba 功能 Spring Cloud

SpringBoot部署到外部Tomcat无法注册到Nacos服务端

事情经过 近期做一个项目投标演示(POC)环境支持,需要集成Nacos服务端。考虑到现有项目中已经有了Nacos相关依赖,那还不简单?新建个服务端,配置几下重启不就搞定了吗?然而事情远没有想得这么简单。同样的代码在我本地IDE里运行就能注册成功,在演示环境 Tomcat+War 部署就不行了。 经过 ......
SpringBoot Tomcat Nacos

Spring Boot如何自定义监控指标

1.创建项目 pom.xml引入相关依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http ......
指标 Spring Boot

【开源免费】使用Spring Boot和Html实现ChatGPT,1:亿还原,将就看

highlight: a11y-dark 简介 前段时间写了一个Chatgpt的Java版SDK开源地址:chatgpt-java欢迎使用。但由于原来OpenAI 并没有支持官网的chatgpt模型,所以使用起来相对没有官网那么智能完善,所以就没有写出一个demo项目,只开源了Open AI的SDK ......
ChatGPT Spring Boot Html

Spring:现代Java开发的必备框架

Spring:现代Java开发的必备框架 Spring是一个轻量级的Java框架,它提供了各种企业级应用程序开发的工具和技术。Spring框架的核心是IoC容器和AOP框架。IoC容器使得Java应用程序的组件化变得更加容易,AOP框架使得Java应用程序的切面编程变得更加容易。Spring框架还提 ......
框架 Spring Java

从源码MessageSource的三个实现出发实战spring·i18n国际化

从源码去看MessageSource的几个实现类的源码出发,基于spring的国际化支持,实现国际化的开箱即用,静态文件配置刷新生效以及全局异常国际化处理。 ......
MessageSource 实战 源码 三个 spring

SpringMVC基础源码分析(一)

实现Controller的三种方式分析 每种实现的方式对应的HanderAdapter都不同。 实现Controller接口 该接口对应的HanderAdapter为SimpleControllerHandlerAdapter。 使用案列: public class LeController imp ......
SpringMVC 源码 基础

Spring Boot2中如何优雅地个性化定制Jackson

概述 本文的编写初衷,是想了解一下Spring Boot2中,具体是怎么序列化和反序列化JSR 310日期时间体系的,Spring MVC应用场景有如下两个: 使用@RequestBody来获取JSON参数并封装成实体对象; 使用@ResponseBody来把返回给前端的数据转换成JSON数据。 对 ......
Jackson 个性 Spring Boot2 Boot

Spring MVC的请求处理逻辑

当大家了解了如何编写一个简单的Spring MVC程序后,大家心中应该会有一些好奇:这背后到底发生了什么? Spring MVC是怎么把这些功能串联起来的?我们只是写了一个控制器而已,HTTP请求是怎么转换为控制器方法的调用的?结果又是怎么变成JSON的.....啊这小伙伴们是不是已经混乱了!? 接 ......
逻辑 Spring MVC

SpringBoot多数据源以及事务处理

背景 在高并发的项目中,单数据库已无法承载大数据量的访问,因此需要使用多个数据库进行对数据的读写分离,此外就是在微服化的今天,我们在项目中可能采用各种不同存储,因此也需要连接不同的数据库,居于这样的背景,这里简单分享实现的思路以及实现方案。 如何实现 多数据源实现思路有两种,一种是通过配置多个Sql ......
数据源 SpringBoot 事务 数据

如何理解Spring框架中的ioc?

如何理解Spring框架中的ioc? ioc,Inversion of Control(控制反转),是Spring中的一种设计思想而非技术。 我们可以从4个方面理解ioc: ①谁控制谁? ——Ioc容器控制对象。 ②控制了什么? ——Ioc容器控制了获取对象及其外部资源。 ③为什么是反转? ——传统 ......
框架 Spring ioc

springBoot集成flowable

前言 Flowable 项目提供了一套核心的开源业务流程引擎,这些引擎紧凑且高效。它们为开发人员、系统管理员和业务用户提供工作流和业务流程管理 (BPM) 平台。 它的核心是一个闪电般快速、久经考验的动态 BPMN 流程引擎,伴随着 DMN 决策表和 CMMN 案例管理引擎,所有这些引擎都是用 Ja ......
springBoot flowable

Spring注解篇,学完注解深入了解SpringBoot更容易

由于Spring Boot项目底层也都是Spring,使用Spring Boot就需要对Spring的注解有一定的了解,这次就把Spring的部分注解聊一下。熟悉了Spring的注解使用Spring Boot开发更是得心应手。 @ComponentScan:用于指定扫描包的路径,只有在它指定的包下  ......
注解 SpringBoot Spring

Spring Boot自动配置原理懂后轻松写一个自己的starter

目前很多Spring项目的开发都会直接用到Spring Boot。因为Spring原生开发需要加太多的配置,而使用Spring Boot开发很容易上手,只需遵循Spring Boot开发的约定就行了,也就是约定大于配置,无需觉得它神奇,它的底层都是使用的Spring。聊完这个原理带着大家轻松写一个自 ......
原理 starter Spring Boot

Spring事务(Transaction)管理高级篇一栈式解决开发中遇到的事务问题

Spring是目前Java开发中最流行的框架了,它的事务管理我们在开发中常常的用到,但是很多人不理解它事务的原理,导致开发中遇到事务方面的问题往往都要用很长的时间才能解决,下面就带着大家去深入了解Spring的事务,然后文章的最后还会给出开发中常常遇到的问题以及解决方案。 如果单纯的用Spring框 ......
事务 Transaction Spring 问题

SpringMVC:RESTful案例

相关准备 和传统 CRUD 一样,实现对员工信息的增删改查。 搭建环境 准备实体类 public class Employee { private Integer id; private String lastName; private String email; //1 male, 0 femal ......
SpringMVC 案例 RESTful

SpringBoot集成Tomcat服务

基于SpringBoot的版本,Tomcat集成的是9.0版本,参考Tomcat核心组件描述,对于框架有大致的了解后,再去分析集成原理,会更容易把握主线逻辑; ......
SpringBoot Tomcat

Spring注解补充(一)

注解补充 挑一些常用,但是深入不多的总结一下。 Bean的生命周期 在@Bean注解中,添加init属性和destroy属性 @Bean(initMethod = "initMethod", destroyMethod = "destroyMethod") public User user() { ......
注解 Spring

三分钟实战手写Spring Boot Starter

1 背景 在平时的开发中,开发的同学会把一些通用的方法,写成一个工具类,例如日期转换的,JSON转换的等等,方便业务后续调用,使代码更容易维护。 如果一些更常用的方法,例如鉴权的,加解密的等等,几乎每个项目都会使用到,这时候开发的同学就会从以前的项目中再抄过来,随着项目的增多,几乎每个项目都有一份一 ......
实战 Starter Spring Boot

0源码基础学习Spring源码系列(一)——Bean注入流程

通过本文,读者可以0源码基础的初步学习spring源码,并能够举一反三从此进入源码世界的大米! 由于是第一次阅读源码,文章之中难免存在一些问题,还望包涵指正! ......
源码 流程 基础 Spring Bean

Spring Boot Hello World 基于 IDEA 案例详解

一、Spring Boot 是什么 世界上最好的文档来源自官方的《Spring Boot Reference Guide》,是这样介绍的: Spring Boot makes it easy to create stand-alone, production-grade Spring based A ......
案例 Spring Hello World Boot

扒一扒Bean注入到Spring的那些姿势,你会几种?

大家好,我是三友~~ 这篇文章我准备来扒一扒Bean注入到Spring的那些姿势。 其实关于Bean注入Spring容器的方式网上也有很多相关文章,但是很多文章可能会存在以下常见的问题 注入方式总结的不全没有分析可以使用这些注入方式背后的原因没有这些注入方式在源码中的应用示例... 所以本文就带着解 ......
姿势 Spring Bean