排序
Spring AOP 中的代理对象是怎么创建出来的?
@[toc] 今天和小伙伴们聊一聊 Spring AOP 中的代理对象是怎么创建出来的,透过这个过程再去熟悉一下 Bean 的创建过程。 最近几篇文章都是和小伙伴们聊 Spring 容器的一些使用细节,结合这些细节...
BeanDefinition解密:构建和管理Spring Beans的基石
本文分享自华为云社区《Spring高手之路11——BeanDefinition解密:构建和管理Spring Beans的基石》,作者: 砖业洋__ 。 BeanDefinition是Spring中一个非常重要的概念,它包含了Spring容器用于创...
SpringMVC的原理和工作流程
springmvc总流程 1,用户发送请求,url为http://localhost:8080/hello 这是用户的起始动作,他发送了一个HTTP请求,并将其URL指向你的应用程序。URL是一种标识资源的方式 ,它可以告诉应用程序...
Spring Boot如何优雅实现结果统一封装和异常统一处理
1.概述 当下基于Spring Boot框架开发的系统几乎都是前后端分离的,也都是基于RESTFUL风格进行接口定义开发的,意味着前后端开发大部分数据的传输格式都是json,因此定义一个统一规范的数据格式...
第7节 Spring源码之 obtainFreshBeanFactory 方法
refresh()方法是Spring启动的核心方法,而obtainFreshBeanFactory()方法是该流程中的第二个核心方法,它的核心功能可以概括成以下两点: 创建一个BeanFactory对象,即DefaultListableBeanFactor...
第8节 Spring源码之 prepareBeanFactory 方法
prepareBeanFactory(beanFactory)方法是refresh方法中第三个核心流程,主要是给容器对象 BeanFactory 的属性值赋值操作,通过一系列的add、set、ignore和register开头的方法完成赋值操作。 一、...
【Spring】— Spring中Bean的装配方式
Bean的装配方式 Bean的装配可以理解为依赖关系注入,Bean的装配方式即Bean依赖注入的方式。Spring容器支持多种形式的Bean装配方式,如基于XML的装配、基于Annotation(注解)的装配和自...
如何正确使用 ThreadLocal,你真的用对了吗? | 京东云技术团队
引言: 当多线程访问共享且可变的数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要ThreadLocal出场了。 ThreadLocal又称线程本地变量,使用其能够将数据封闭在各...
SpringBoot 自定义注解及 AOP 的开发和使用
在公司项目中,如果需要做一些公共的功能,如日志等,最好的方式是使用自定义注解,自定义注解可以实现我们对想要添加日志的方法上添加,这篇文章基于日志功能来讲讲自定义注解应该如何开发和使...
Spring @Autowired注入太坤肋了 我们自己写一个
1、 背景 众所周知该注解是Spring中用于依赖注入的注解,但是该注解只是简单根据类型的注入, 并且如果该类型存在多个实现类的情况下无法抉择具体哪一个实现类就会抛出错误,除非搭配@Qualifier...
Spring应用启动分析优化
最近在搞应用的启动优化,参考一些可以显著提高 Java 启动速度方法和spring-boot-startup-report实现了此项目(spring-startup-ananlyzer),采集Spring应用启动过程数据,生成交互式分析报告(HTM...
Spring容器获取Bean的9种方式
1 前言 随着SpringBoot的普及,Spring的使用也越来越广,在某些场景下,我们无法通过注解或配置的形式直接获取到某个Bean。比如,在某一些工具类、设计模式实现中需要使用到Spring容器管理的Bea...
(七)Spring源码解析:Spring事务
对于事务来说,是我们平时在基于业务逻辑编码过程中不可或缺的一部分,它对于保证业务及数据逻辑原子性立下了汗马功劳。那么,我们基于Spring的声明式事务,可以方便我们对事务逻辑代码进行编写...
听说 Spring Bean 的创建还有一条捷径?
@[toc] 在 Spring Bean 的创建方法中,有如下一段代码: AbstractAutowireCapableBeanFactory#createBean: @Override protected Object createBean(String beanName, RootBeanDefinition mbd, ...
SpringBoot ApplicationContextInitializer系统初始化器原理解析
前言 Spring提供了ApplicationContextInitializer接口作为系统初始化器的实现,其本质就是Spring容器刷新之前执行的一个回调函数,可以让我们非常方便在Spring容器刷新前,往ApplicationContext...
第13节 Spring源码之 AOP 实例化过程
本篇笔记将重点整理 Spring 是如何解析AOP的配置,并将配置实例化注入到容器中,包括xml配置、注解配置。 一、Aop的简单案例 定义公共业务类 @Service public class PrintMsgService { public S...
浅谈 Spring 如何解决 Bean 的循环依赖问题
1. 什么是循环依赖? 通俗来讲,循环依赖指的是一个实例或多个实例存在相互依赖的关系(类之间循环嵌套引用)。 举个例子 public class AService { private BService bService; } public class ...
Spring Security 401和403错误解析及调试:从源码到调试技巧
问题 在配置了 Spring Security 白名单路径前提下,访问仍然是 401(未授权)或 403 (禁止访问),没意外情况基本是白名单配置未生效或者路径配置错误。 但大多数人遇到这种问题不知如何下手,只...
【Spring】透过Spring源码查看Bean的命名转换规则
本文正在参加「金石计划」 近期在写Spring项目的时候,需要通过注解的形式去替代之前直接将Bean存放在Spring容器这种方式,以此来简化对于Bean对象的操作,但是这样无法通过准确的Id去获取到相...
走向 Native 化:Spring&Dubbo AOT 技术示例与原理讲解
作者:刘军 Java 应用在云计算时代面临“冷启动”慢、内存占用高、预热时间长等问题,无法很好的适应 Serverless 等云上部署模式,GraalVM 通过静态编译、打包等技术在很大程度上解决了这些问题...