首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java架构师必看

    Spring源码分析2

    Spring源码分析2 强烈推介IDEA2020.2破解激活,IntelliJ

    41620发布于 2021-05-14
  • 来自专栏Coder小黑

    Spring5源码学习(2)

    接上回 Spring5源码学习(1)已经讲完了this()方法,现在来看register(annotatedClasses);方法。 // new AnnotationConfigApplicationContext(AppConfig.class); 源码 public AnnotationConfigApplicationContext //org.springframework.beans.factory.support.DefaultListableBeanFactory#registerBeanDefinition方法源码 public (注册的是Spring内部一些postProcessor和我们代码传入的AppConfig类)。 ? this.beanFactory.beanDefinitionMap ---- 源码学习笔记GITHUB仓库地址:https://github.com/shenjianeng/spring-code-study

    54520发布于 2019-12-18
  • 来自专栏后端从入门到精通

    SpringAOP(2)-spring源码详解(七)

    上篇文章说了spring的aop,在启动类加一个启动注解,注解点进源码可以看到注册了bean定义的后置处理器。每个切入点都会生成一个adviosr,他们会排序好依次注册。 他的顺序是before、after、afterRturning、afterThrowing SpringAOP(1)-spring源码详解(六) 这里解析到了环绕处理器,放入到aspectFactoryCache

    28140编辑于 2022-12-14
  • 来自专栏小工匠聊架构

    Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_2

    ---- Pre 接上文 Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1 ---- 源码解读 总体流程 ? ,Bean实例还没有被初始化 * 2)BeanFactoryPostProcessor(后执行) * 所有的Bean定义信息已经加载到容器中,但是Bean实例还没有被初始化 紧接着定义了2个集合 : 第一个集合 List regularPostProcessors 看List中的类型 BeanFactoryPostProcessor ,这个地方是存放我们手动提供给Spring 的后置处理器,注意这个手动, 并不是又Spring扫描得到的。 容器中就有值了,有了我们配置的所有的应该被Spring管理的类!

    58620发布于 2021-08-17
  • 来自专栏微信公众号【Java技术江湖】

    Spring源码剖析2:初探Spring IOC核心流程

    初始化 大致单步跟了下Spring IOC的初始化过程,整个脉络很庞大,初始化的过程主要就是读取XML资源,并解析,最终注册到Bean Factory中:在完成初始化的过程后,Bean们就在BeanFactory 理解了以上两个过程,我们就可以自己实现一个简单的Spring框架了。于是,我根据自己的理解实现了一个简单的IOC框架Simple Spring,有兴趣可以看看。 beanName, exposedObject, mbd); } } // ... ... } 理解了以上两个过程,我们就可以自己实现一个简单的Spring 于是,我根据自己的理解实现了一个简单的IOC框架Simple Spring,有兴趣可以看看。

    57110发布于 2019-11-26
  • 来自专栏后端从入门到精通

    AOP源码解析(2)---Spring源码从入门到精通(十九)

    上篇文章主要讲了AOP的@EnableAspectAutoProxy注解,里面导入的类和执行的后置处理器: AOP源码解析(1)---Spring源码从入门到精通(十八) 阅读本篇文章,一定要先阅读上篇文章 ,运行的源码是基于上篇文章的代码,才方便理解,如果跳着阅读,感觉内容生涩,概不负责。 2、之后注册配置类,调用refresh(),刷新容器。 3、registerBeanPostProcessor方法注册bean后置处理器,来拦截bean的创建。 2)、给容器中加别的BeanPostProcessor。 3)、优先注册实现PriorityOrdered接口的BeanPostProcessor。

    45520编辑于 2022-07-26
  • 来自专栏漫漫架构路

    Spring源码学习笔记(2)——Bean的加载

    Spring源码学习笔记(2)——Bean的加载 一. Bean加载的核心流程 前面大概分析了Spring读取解析配置文件,并加载BeanDefinition的过程。本节详细整理下Bean的加载过程。 ); Object bean; //首先检查缓存中或者实例工厂中是否有对应的的实例,因为在创建Singleton Bean的时候可能存在依赖注入的情况,而在创建依赖时,为了避免循环依赖,Spring } 当我们使用applicationContext.getBean(“beanName”)方法从容器中获取bean时,就会走到AbstractBeanFactory的doGetBean()方法,这是Spring 从缓存中获取单例Bean 在Spring中,Singleton类型的Bean只会创建一次,然后存放在缓存中,后面获取时就直接从缓存中获取。 this.singletonFactories.remove(beanName); } } } } return singletonObject; } 上面方法中涉及到Spring

    59620发布于 2020-09-03
  • 来自专栏路过君BLOG from CSDN

    spring oauth2 authorization server 配置源码解析

    版本 1.2.1 源码 OAuth2 授权服务器配置 org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration extends AbstractOAuth2Configurer>, AbstractOAuth2Configurer> createConfigurers() { Map<Class<? extends AbstractOAuth2Configurer>, AbstractOAuth2Configurer> configurers = new LinkedHashMap<>(); / )); // 令牌获取端点 configurers.put(OAuth2TokenEndpointConfigurer.class, new OAuth2TokenEndpointConfigurer OAuth2DeviceVerificationEndpointConfigurer.class, new OAuth2DeviceVerificationEndpointConfigurer(this

    1.4K10编辑于 2024-01-06
  • 来自专栏迁移内容

    Spring源码:Spring源码阅读环境搭建

    本篇内容包括:Mac 环境下 gradle 的安装和配置、源码克隆、新建测试类,测试Spring源码 等内容! 使用 gradle-wrapper.properties 中 distributionUrl 链接下载 gradle-5.6.4 到电脑目标位置并解压 Ps:确认对应版本很重要,不然很大概率会有问题 2、 GitHub 个人仓库 1、Fork GitHub 中的 Spring 官方源码到自己的 GitHub 仓库 # fork源码到个人GitHub仓库 2、同步 GitHub 个人仓库 Spring 源码到 Gitee 个人仓库 # 打开码云gitee新建仓库,点击从其他网站已有仓库导入 # 输入自己GitHub中Spring源码仓库地址URL创建gitee的Spring个人源码仓库 Ps:如果已经配置了 Spring源码 1、新建 my-test 模块进行源码测试 # 新建 module # module 命名 my-test 2、修改 build.gradle 文件 模块创建好之后只有一个build.gradle

    1.2K20编辑于 2022-12-01
  • 来自专栏卯金刀GG

    【spring源码解析】spring源码报错问题

    下载spring5.0.4源码 用gradle 编译生成了 spring-jcl spring-core spring-beans 3个eclipse 项目 但是 spring-core 下面的一个 错误2: 提示:GroovyDynamicElementReader cannot be resolved to a type 添加eclipse的groovy插件, 在eclipse的 Help ->

    1.7K20发布于 2019-07-25
  • 来自专栏鳄鱼儿的技术分享

    Spring源码学习,Spring Framework源码编译

    Spring Framework源码编译 博主本地java版本为 java version "11.0.10" 拉取源码 选定存放路径直接只用git clone拉取最新源码 git clone https ://github.com/spring-projects/spring-framework.git 目前最新RELEASE版本是5.2.18,编译前需要将tag切换至这个版本。 源码命令行编译测试 使用以下两条指令进行编译测试 ./gradlew :spring-oxm:compileTestJava // 官方建议 . ☘️运行测试 这里可以看出一共有6个Bean,我们定义了2个Bean,分别是msg、application。 参考 spring.io/projects/sp…

    49210编辑于 2024-05-21
  • 【源码】spring源码解析

    在 Spring 框架中,核心模块是 Spring Core,它提供了 IoC(Inversion of Control)容器和依赖注入的支持。 在案例分析中,我们可以以一个简单的示例来解析 Spring 框架的源码。假设我们有一个简单的 Web 应用程序,需要实现用户管理的功能,包括用户的增删改查。 然后,我们需要配置 Spring MVC 框架的相关配置。 以上是一个简单的 Spring MVC 应用程序的案例分析。通过这个案例,我们可以深入理解 Spring 框架的工作原理,包括 IoC 容器的实现、依赖注入的过程、AOP 的实现等。 同时,我们也可以通过调试源码的方式来进一步了解 Spring 框架的内部实现细节。

    28710编辑于 2025-08-29
  • 来自专栏java架构师

    【学习底层原理系列】重读spring源码2-入口

    上篇介绍了Spring IOC的核心功能,都在refresh()方法里。那么这个方法是从哪发起调用的呢? <param-name>contextConfigLocation</param-name> <param-value> classpath*:config/spring 题外:contextConfigLocation是spring的配置文件存放路径。

    47320发布于 2021-04-23
  • 来自专栏爪哇缪斯

    (六)Spring源码解析:Spring AOP源码解析

    但是为了配置简便,Spring使用了自定义配置来帮助我们自动注册AnnotationAwareAspectJAutoProxyCreator,注册流程如下所示: public static BeanDefinition ) continue; // isEligibleBean方法默认返回true // 官方注释:我们必须小心不要急切地实例化bean,因为在这种情况下,它们将被Spring b> 步骤2:根据切点信息生成增强 我们可以看到,在步骤2中,是通过创建一个InstantiationModelAwarePointcutAdvisorImpl实例对象来生成切点的增强的,源码如下所示: 更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」 往期推荐 (五)Spring源码解析:ApplicationContext解析 (四)Spring源码解析 :bean的加载流程 (三)Spring源码解析:自定义标签解析 (二)Spring源码解析:默认标签解析 (一)Spring源码解析:容器的基本实现

    1.5K30编辑于 2023-09-06
  • 来自专栏springboot

    Spring源码解析(十):spring整合mybatis源码

    // 1.解析XML配置 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); // 2. spring整合mybatis使用 SqlSession对象以及代理对象都交给spring容器来创建 直接从容器中获取Mapper接口的实现类(代理对象)即可 @Configuration //声明该类是核心配置类 整合mybatis原理 根据上面spring整合mybatis的配置类的信息,要想清楚Spring是如何整合Mybatis的,我们只要弄明白两点 @MapperScan注解的作用 SqlSessionFactoryBean Spring跟Mybatis整合 // 最重要的事情就是将Mybatis生成的代理对象交由Spring来管理 // 实现这个功能的就是这个MapperFactoryBean Class<? 源码解析(二):bean容器的创建、默认后置处理器、扫描包路径bean 核心内容就是扫描指定包将符合要求Class注册bean定义 # ClassPathBeanDefinitionScanner类方法

    51511编辑于 2025-01-21
  • 来自专栏杨不易呀

    Spring框架源码分析之Spring源码编译

    Spring 源码环境搭建Spring 源码下载地址:https://github.com/spring-projects/spring-frameworkGradle 下载地址:https://gradle.org /releases/查看 Spring 源码中使用的 Gradle 版本,打开下载好的 Spring 源码解压,然后进入到如下图所示的目录当中:图片打开 gradle-wrapper.properties Xmx2048Morg.gradle.caching=trueorg.gradle.parallel=trueorg.gradle.configureondemand=trueorg.gradle.daemon=true导入源码依次点击 File → New → Project from Existing Sources,选择源码包路径下的 build.gradle 文件完成源码导入如下图:图片图片idea 配置 gradle依次点击 预编译先编译 spring-core 点击 idea 右边的侧边栏当中的 gradle 选择该模块,spring-core/Tashks/other/compileTestJava 如下图:图片spring-core

    1.1K110编辑于 2023-09-25
  • 来自专栏JAVA体系

    【Spring源码】Spring Event事件

    今天就来讲一下Spring的事件机制。 2、什么是Spring Event? Spring框架中的事件是一种观察者设计模式的实现,用于在应用程序中处理各种状态变化。 3、基本使用 Spring Event的使用基本有以下几个步骤:定义事件,发布事件,监听事件。 不想为每个事件处理都创建一个ApplicationListener实现类;2. 希望支持更复杂的事件条件过滤。 doSomething(); } } 4、Spring Event是同步还是异步? 默认情况下 Spring Event是同步执行的。你怎么这么确定?我们先来演示下上面的demo。 4.1、源码实现 如果还是不信?

    1.1K10编辑于 2024-01-25
  • 来自专栏JAVA体系

    【Spring源码】Spring事务原理

    2、Spring事务基本概念 2.1、基础配置 我们先来回顾一下Spring事务的基础配置信息,以下由ChatGPT给我们提供的相关资料: 2.1.1、Spring事务的基础配置 1、问:Spring事务的基础配置 网上借来一张Spring事务API架构图: 3、事务嵌套 前面2章节都是从理论知识的角度阐述了事务的一些基本特性。显然这些背诵的八股文一下子就忘记了。接下来我们以实际业务的角度来分析一下几种传播机制。 4、源码看事务 Spring中通过注解@EnableTransactionManagement开启事务,那么我们从这个注解开始入手: @Target(ElementType.TYPE) @Retention throw ex2; } } } } 至此,基本上源码的大致事务处理流程就已经走完。 5、事务失效 前面讲到了一些Spring相关的基础理论知识,以及源码是如何实现的。

    92110编辑于 2024-01-25
  • 来自专栏springboot

    Spring源码解析(十一):spring事务配置类源码

    中事务的传播机制 int PROPAGATION_REQUIRED = 0; int PROPAGATION_SUPPORTS = 1; int PROPAGATION_MANDATORY = 2; int ISOLATION_DEFAULT = -1; int ISOLATION_READ_UNCOMMITTED = 1; int ISOLATION_READ_COMMITTED = 2; useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true Transaction Advisor) 其内部也是调用了TransactionManager的方法 主要涉及到两个核心注解 @EnableTransactionManagement @Transactional 2、 AOP切面一样Spring源码解析(九):AOP源码之@Aspect所有相关注解解析 对于事务代理对象,只是在拦截器链中加上事务拦截器TransactionInterceptor 由图可知,先执行事务拦截器

    1.1K11编辑于 2025-01-21
  • 来自专栏java达人

    透过源码学习设计模式2—Spring ProxyFactory和代理模式

    Proxy.newProxyInstance(targertClass2.getClassLoader(), targertClass2.getInterfaces(),accessControl); 源码深入 Spring ProxyFactory 看下面这幅图: 来源:http://images2015.cnblogs.com/blog/639520/201611/639520-20161129113959240 为了重用相关逻辑,Spring AOP框架在实现的时候,将一些公用的逻辑抽取到了org.spring- framework.aop.framework.ProxyCreatorSupport中,它自身就继承了 Spring aop 仅作用于方法,如果你想对构造方法或字段作拦截处理,就要引入AspectJ,它支持在编译期间织入横切逻辑,提高运行期间的性能,但在易用性和灵活性上不如Spring aop。 值得注意的是,Spring中@AspectJ注解区别的切面也是基于Spring aop 的代理机制实现的,不要被这个名称混淆了。

    96440发布于 2019-05-13
领券