
Spring学习系列
文章平均质量分 85
乐享技术
资深IT行业专家:从事过软件需求分析、设计、开发、测试、试运行、运维、研发管理等多个岗位。先后研发过应用服务器框架、自动化测试框架并投入项目实战;主持过产品研发全过程方法实践论编纂,并推广使用。希望通过记录、整理、分析与总结,与同行分享共勉!
展开
-
一起学SF框架系列附-常用官网及知识点资源链接推荐
学习SpringFramework过程中,用到的一些好的资源链接罗列原创 2023-10-16 15:35:50 · 148 阅读 · 0 评论 -
一起学SF框架系列补-模块core-cglib之Enhancer
Enhancer是CGLIB中最常用的一个类,和Java1.3动态代理中引入的Proxy类差不多。但和Proxy不同的是,Enhancer既能够代理普通的class,也能够代理接口。原创 2023-10-10 10:22:58 · 168 阅读 · 0 评论 -
一起学SF框架系列附-Springframework源码学习总结
1、采用应用跟踪方法为主,即编写最简单应用,然后以应用容器ClassPathApplicationContext初始化为起点,跟踪初始化全过程:容器初始化、加载资源、加载Bean定义及Bean初始化;同时把初始化过程同各个技术结合点入手,跟进具体技术如何实现。个人认为这种方法最有效的特点就是实现和结果印证,有助于对框架的理解。2、学习过程中仅仅看源码是远远不够,还需要到做如下几点:2.1 用UML工具画类关系图,这样才容易建立相关点的整体印象。原创 2023-08-28 10:35:49 · 120 阅读 · 0 评论 -
一起学SF框架系列7.4-spring-AOP-AOP代理创建
创建bean的代理对象。= null) {// 为给定的bean类和bean名称构建一个缓存键= bean) {// bean没有对应的代理,则创建代理// 如果目标bean已存在(在bean实例化前创建的),直接返回// 目标bean不是advisedBean,直接返回// 如果是基础类(是不能被代理的)或者 应该跳过的bean(“跳过”意思是给定的bean不应被此后处理器进行自动代理),直接返回/* 创建代理类 */原创 2023-08-21 09:30:37 · 106 阅读 · 0 评论 -
一起学SF框架系列7.3-spring-AOP-AOP配置解析
AOP的实现在SF框架中,统一作为Bean来解析处理,因此加载过程同一般bean基本相同(详细过程见”“),所不同的是:1、AOP对应的命名空间为”aop"2、AOP的NamespaceHandler对应的是AopNamespaceHandler。原创 2023-08-16 21:37:03 · 166 阅读 · 0 评论 -
一起学SF框架系列7.2-spring-AOP-AOP使用
Component// @Aspect切面注解,表示该类是切面类@Aspect// before advice,括号中是切入点配置,省略了“pointcut”(execution是pointcut语法的固定开头) 注1System.out.println("方法执行advice-before");// After advice,括号中是切入点配置,省略了“pointcut”System.out.println("方法执行advice-after");原创 2023-08-13 20:57:35 · 172 阅读 · 0 评论 -
一起学SF框架系列7.1-spring-AOP-基础知识
代理“的本质是A要完成一些事,B可以代理A去完成,两者做的效果就是结果达成是一样的,但过程可能不一样。比如我要注册一家公司,肯定需获得营业执照,如果自己办理就容易跌坑,效率很低;我可以委托中介(代理)帮我完成,他们办证的过程和自己去办的过程肯定有不同,但最终目的都拿到了营业执照。从技术上来说,达成结果相同意味着直接执行方法本身即可,过程不同就意味着在方法执行之前或之后可以做其它事情。原创 2023-08-09 18:18:09 · 188 阅读 · 0 评论 -
一起学SF框架系列附1-spring常见英文单词含义
实际开发的时候,有时Bean需要用到Spring容器本身的功能资源,就需要提供一种机制让Bean能意识到Spring容器到存在并能调用Spring所提供的资源,这个机制就是由Aware来实现的。:bean的初始化(实例化之后的动作),执行bean各种相关的初始化方法(Aware,BeanPostProcessorsBeforeInitialization、init-method和BeanPostProcessorsAfterInitialization)。:定制化,用来表示对某个对象进行特别的配置。原创 2023-07-04 15:23:02 · 328 阅读 · 0 评论 -
一起学SF框架系列6.2-spring-core-Environment
Environment是集成在容器中的抽象接口,它对应用程序环境的两个关键方面进行建模:配置文件(profiles)和属性(properties)。原创 2023-06-20 21:46:09 · 341 阅读 · 0 评论 -
一起学SF框架系列6.1-spring-core-Resource
Java虽然提供了java.net.URL类和各种URL前缀处理程序来负责处理对各种资源的访问,但对于低级别资源的访问来说还是不够充分。例如,没有标准化的实现可用于访问需要从类路径中获取或者相对于一个ServletContext的资源;也没有检查所指向的资源是否存在的标准方法。因此Spring提供了Resource来达成目的。原创 2023-06-18 19:08:14 · 786 阅读 · 0 评论 -
一起学SF框架系列5.13-spring-beans-类型转换TypeConverter
类型转换基本意思就是把一个数据从一个数据类型转换为另一种数据类型的值。原创 2023-08-06 10:03:59 · 353 阅读 · 0 评论 -
一起学SF框架系列5.12-spring-beans-数据绑定dataBinding
设置对象属性。// 把数据转换成MutablePropertyValues List < PropertyValue > propertyValues =(pvs instanceof MutablePropertyValues mpvs?} try {// 按数据逐一设置 for(PropertyValue pv : propertyValues) {try {if(!throw ex;if(!throw ex;原创 2023-08-01 17:55:09 · 367 阅读 · 0 评论 -
一起学SF框架系列5.11-spring-beans-数据校验validation
Java为Bean数据合法性校验提供了标准框架规范,它定义了一套可标注在成员变量,属性方法上的校验注解。最初版本为 Java Bean Validation1.0(JSR-303)、Java Bean Validation1.1(JSR-349),Java Bean Validation2.0(JSR-380),目前最新版本为Java Bean Validation3.0(同2.0最要变化是命名空间变为"jakarta.validation.*)。原创 2023-07-30 10:22:52 · 203 阅读 · 0 评论 -
一起学SF框架系列5.10-spring-beans-Aware
SF的依赖注入亮点之一就是所有的Bean实现都不需要去考虑运行时要如何注入的Spring容器(就是无感知),Bean和Spring容器耦合度很低(就是无侵入编程)。实际开发的时候,有时Bean需要用到Spring容器本身的功能资源,就需要提供一种机制让Bean能意识到Spring容器到存在并能调用Spring所提供的资源,这个机制就是由Aware来实现的。原创 2023-06-29 22:41:58 · 166 阅读 · 0 评论 -
一起学SF框架系列5.9-spring-Beans-bean实例创建
CGLIB实例化器使用到的工具抽象类。除了缓存生成的类以提高性能外,它还提供了钩子,用于自定义ClassLoader、生成的类的名称以及生成前应用的转换。原创 2023-07-19 15:21:29 · 332 阅读 · 0 评论 -
一起学SF框架系列5.8-spring-Beans-注解bean解析4-bean解析
前面三节主要讲了如何加载注解Bean的BeanDefinition,执行环节是在DefaultBeanDefinitionDocumentReader.parseBeanDefinitions中用BeanDefinitionParserDelegate.parseCustomElement(ele)加载的,实际上没对注解真正进行解析。本节主要讲述注解bean如何被正确解析。原创 2023-07-25 21:52:57 · 192 阅读 · 0 评论 -
一起学SF框架系列5.8-spring-Beans-Bean注解解析3-解析配置component-scan
本文主要讲述Spring是如何解析“context:component-scan”元素,扫描加载目录下的BeanDefinition。原创 2023-07-23 22:33:33 · 413 阅读 · 0 评论 -
一起学SF框架系列5.8-spring-Beans-注解bean解析2-解析配置annotation-config
本文主要讲述Spring是如何解析“annotation-config”,实际是加载注解对应解析器。原创 2023-07-18 21:21:55 · 265 阅读 · 0 评论 -
一起学SF框架系列5.8-spring-Beans-注解bean解析1-解析入口
前面跟踪了Spring框架如何解析xml模式配置的bean解析(参见“”),本文主要解析注解bean(详见“”)是如何被Spring框架解析的。原创 2023-07-15 15:48:34 · 209 阅读 · 0 评论 -
一起学SF框架系列5.7-spring-Beans-BeanDefinition使用
解析RootBeanDefinition对应的Class// 过渡类 @Nullable protected Class原创 2023-07-12 21:04:44 · 364 阅读 · 0 评论 -
一起学SF框架系列5.7-spring-Beans-BeanDefinition解析
本文详细跟踪了Spring如何把bean的元数据配置解析成框架内部的BeanDefinition的源代码原创 2023-07-10 08:48:35 · 168 阅读 · 0 评论 -
一起学SF框架系列5.7-spring-Beans-BeanDefinition定义
开发人员按照bean的元数据规则定义应用bean,SF通过解析生成框架使用的BeanDefinition。一起学SF框架系列5.2-模块Beans-bean的元数据配置一起学SF框架系列5.7-模块Beans-BeanDefinition解析。原创 2023-07-07 20:53:55 · 215 阅读 · 0 评论 -
一起学SF框架系列5.6-spring-Beans-AbstractBeanFactory
AbstractBeanFactory继承于FactoryBeanRegistrySupport,并负责实现ConfigurableBeanFactory,是bean核心类之一。原创 2023-06-15 20:58:21 · 430 阅读 · 0 评论 -
一起学SF框架系列5.5-spring-Beans-AbstractAutowireCapableBeanFactory
AbstractAutowireCapableBeanFactory继承于AbstractBeanFactory,主要负责bean创建后的相关处理,包括属性、装配、初始化等等。原创 2023-06-13 20:49:49 · 444 阅读 · 0 评论 -
一起学SF框架系列5.4-spring-Beans-DefaultListableBeanFactory
顶层接口,别名注册表接口,定义了管理bean的别名和名称映射关系的基本方法,如注册registerAlias(String name, String alias)、获取(getAliases(String name))和销毁(removeAlias(String alias))。原创 2023-06-11 21:36:27 · 682 阅读 · 0 评论 -
一起学SF框架系列5.3-spring-Beans-bean与Spring容器的交互方式
正常情况下,应用中的bean同spring容器关系如下图:尽管应用bean是Spring容器创建并建立依赖关系,应用只需使用bean即可,因此对bean来说Spring容器就是无感知的(无侵入编程)。但是还是存在需求需要应用bean同Spring容器进行交互,以便利用容器的能力完成相关工作。本篇就是讲述应用Bean如何与容器进行交互的。原创 2023-06-08 19:44:18 · 268 阅读 · 0 评论 -
一起学SF框架系列5.2-spring-Beans-bean的元数据配置
}AppConfig 相当于xml模式下的xml定义文件。@Bean注解的MyServiceImpl相当于xml的如下定义:原创 2023-06-06 19:12:51 · 612 阅读 · 0 评论 -
一起学SF框架系列5.1-spring-Beans-bean概述
控制反转(IoC)也称为依赖注入(DI),IoC是解决对象(即bean)的创建以及管理的问题。正常情况下,对象实例是由使用者通过new来创建,但当对象很多且关系复杂的时候,这种方法不仅繁琐,而且复杂(需关注对象的作用范围及生命周期)。在SF中,由Spring的IoC容器来管理对象的创建、配置和生命周期,不需要人工来管理对象之间复杂的依赖关系,这样做的好处有:1、使用者不需要手工创建对象实例,直接使用即可,简单直接;2、对象定义和使用分离,达到解耦目的。原创 2023-06-04 21:51:34 · 549 阅读 · 0 评论 -
一起学SF框架系列4.8-spring-context-事件机制(Event)
自定义事件继承ApplicationEvent。//事件类的属性可以当做事件传参 private final String email;//ApplicationEvent构建 super(source);} }原创 2023-06-27 18:30:25 · 182 阅读 · 0 评论 -
一起学SF框架系列4.7-spring-context-国际化(I18N)MessageResource
Spring通过MessageSource接口提供了国际化(“i18n”)功能。搞明白MessageResource相关接口和类,基本就掌握了国际化功能。原创 2023-06-24 12:56:21 · 567 阅读 · 0 评论 -
一起学SF框架系列4.6-spring-context-AbstractApplicationContext
org.springframework.context.ApplicationContext接口表示Spring IoC容器,负责实例化、配置和组装bean。容器通过读取配置元数据来获取关于实例化、配置和组装哪些对象的指令。配置元数据以XML、Java注释或Java代码表示。它允许您表达组成应用程序的对象以及这些对象之间丰富的相互依赖关系。AbstractApplicationContext是实现ApplicationContext接口的主体,是SF核心类之一,需仔细学习分析。原创 2023-06-02 08:10:16 · 276 阅读 · 0 评论 -
一起学SF框架系列4.5-spring-context-AbstractRefreshableApplicationContext
AbstractRefreshableApplicationContext继承于AbstractApplicationContext,主要实现BeanFactory刷新(含初始化)。原创 2023-05-30 19:53:17 · 628 阅读 · 0 评论 -
一起学SF框架系列4.4-spring-context-AbstractRefreshableConfigApplicationContext
AbstractRefreshableConfigApplicationContext继承于AbstractRefreshableApplicationContext,主要解析配置文件名中占位符。原创 2023-05-28 22:41:34 · 91 阅读 · 0 评论 -
一起学SF框架系列4.3-spring-context-AbstractXmlApplicationContext
AbstractXmlApplicationContext继承于AbstractRefreshableConfigApplicationContext,其唯一作用实现祖先类的loadBeanDefinitions方法:从xml格式的配置中加载Bean定义。原创 2023-05-26 21:35:00 · 87 阅读 · 0 评论 -
一起学SF框架系列4.2-spring-context-ClassPathXmlApplicationContext
该类作用就是解析xml格式配置的Bean元数据,从而加载Bean定义。子类除了ClassPathXmlApplicationContext,还有FileSystemXmlApplicationContext。该类作用就是提供对配置文件位置的解析。该类作用就是刷新BeanFactory–关掉原来BeanFactory,基于容器重新构建BeanFactory。可以理解为在一个运行的容器中,可重新加载Bean,从而方便实现热更新。构建ApplicationContext的绝大部分工作在该类完成。原创 2023-05-24 09:53:40 · 112 阅读 · 0 评论 -
一起学SF框架系列4.1-spring-context-核心ApplicationContext
实际应用中使用SF第一个类就是ApplicationContext(见下图),肯定是非常重要的,我们的学习也从这里开始。原创 2023-05-21 21:42:32 · 81 阅读 · 0 评论 -
一起学SF框架系列3-搭建学习Spring-Framework源码环境
学SF框架,第一步就是搭建学习SF环境。由于采用应用分析法,主要利用Maven来下载源码+eclipse快捷键追踪代码,不仅使环境搭建简单,而且学习非常高效。下面是windows10下搭建学习SpringFramework的源码环境的几个步骤:1、安装Java8。2、安装并配置eclipse。3、搭建应用。原创 2023-05-19 08:40:48 · 272 阅读 · 0 评论 -
一起学SF框架系列2-如何学习SpringFramework
spring系列框架是当前最主流的java开源框架,SpringFramework是spring系列框架的出发点,是初心,同时也是spring系列框架的基础,因此如果能弄明白SF,不仅可提升技术技能,也利于在工作中更好使用SF及更快解决相关问题。4、框架为保持可持续发展,设计非常灵活,预留很多可扩展点,典型特征就是类多、继承层次多、方法跳转多等。除了Test模块外,整个框架的基础就是Core Container,这就是我们开始学习的切入点,相信把这些搞明白后,按图索骥,后续学习就容易很多了。原创 2023-05-17 08:18:46 · 112 阅读 · 0 评论 -
一起学SF框架系列1-简单了解Spring-Framework
学习SpringFramework(简称”SF“)前,需先认识下SpringFramework。Spring 是于2003年兴起的一个全栈轻量级的 Java 开源框架,由 业界大牛Rod Johnson 创建,使用 Spring 可以更快、更轻松、更安全地进行 Java 编程。Spring是java领域最主流、最活跃的开源框架,没有之一。原创 2023-05-15 11:25:03 · 172 阅读 · 0 评论