
java基础
文章平均质量分 95
-御狐神-
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
小明学Spring Framework容器启动系列——Bean名称生成策略
Spring BeanBean名称生成策略1. 前言2. Bean名称生成策略2.1 默认Bean名称生成策略2.2 注解Bean名称生成策略2.3 类全称的bean名称策略1. 前言Spring容器中,每一个Bean都必须要有一个唯一的名称,这个名称就是Bean在容器中的唯一标识,查找或者修改Bean的都必须要通过Bean名称这个唯一索引进行(我们知道Spring容器可以通过Bean名称和类型查找Bean,即使是按照Bean的类型查找Bean,也会先根据Bean的类型查找Bean的名称,然后再根据b原创 2021-03-16 15:13:29 · 430 阅读 · 5 评论 -
小明学Spring基础系列——Spring Bean定义的继承体系
1. 前言Spring体系中,Bean是一切的基础,在我的另外一篇博客中,我已经对Bean的定义包含的内容进行了简单的介绍,但是Spring的bean定义有着复杂的体系,本文将重点对Spring中的各种Bean功能进行简单介绍。Spring中Bean定义的继承结构如下图所示,其中Spring创建Bean使用的Bean定义为RootBeanDefinition,用户自定义Bean最常使用的为GenericBeanDefinition。2. Bean定义的注册我们在使用Spring框架的时候,往往会使用原创 2021-03-12 19:04:53 · 257 阅读 · 0 评论 -
小明学Spring基础系列——Bean的生产
1. 前言Spring的核心特性就是控制反转(IOC)和切面编程(AOP),Spring通过IOC容器来实现这些特性,IOC容器中,用户定义的对象以Bean的形式存放,然后由Spring解决Bean之间的依赖关系,并且对Bean进行代理从而实现AOP编程。Spring中的Bean由BeanFactory生产,生产流程比较复杂,因为在生产过程中需要解决Bean之间的依赖、Bean的作用域、Bean的实例化前后处理、Bean的初始化前后处理等步骤,最后才能得到一个装配完全的Bean。本文的重点就是讲述一下Be原创 2021-03-10 17:35:44 · 297 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——容器启动的收尾工作
1. 前言写到这一章,我自己都有一种轻松的感觉,Spring容器到这里已经基本启动完成,容器已经构建完成,剩下的工作就是打扫战场了,比如清理资源加载器的缓存、初始化BeanFacotry的生命周期管理器、发布对应的容器Refresh事件等。这个阶段是Spring容器启动的最后一步,如下图中的红色方框部分所示。...原创 2021-03-02 15:53:51 · 196 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——BeanFactory的初始化完成
1. 前言在前面的文章中,我们说过Spring容器最重要的组件之一就是BeanFactory,并且简单介绍了BeanFactory的初始化,初始化完成的BeanFactory已经可以执行getBean等操作,但是对于Spring容器来说,会要求BeanFactory在初始化完成之后生成一些常用的Bean,并且要冻结Bean定义的注册。...原创 2021-03-02 11:24:45 · 291 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——国际化与事件的初始化
1. 前言Spring的容器叫ApplicationContext,他的本质其实就是一个BeanFactory,那它和BeanFactory有哪些主要的不同之处呢?这就涉及到本文将的重点:国际化与事件,当然除了这两个特性ApplicationContext还有很多其它特性。本文重点介绍Spring容器启动过程中的国际化与事件两个功能的初始化,该环节在整个Spring容器启动过程中的位置如图中的红色方框部分所示。...原创 2021-02-26 18:03:42 · 205 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——BeanPostProcessor和BeanFactoryPostProcessor的初始化
1. 前言Spring容器中的BeanFactory用来生成各种Bean,但是如果用户需要在生成Bean的过程中进行一些进行一些自定一加工,就需要用到BeanPostProcessor和BeanFactoryPostProcessor。其中BeanFactoryPostProcessor用于对Bean的定义进行处理,比如增加或者修改Bean的定义,而BeanPostProcessor用于对Bean的实例化前后进行处理。那么这些处理器是什么时候添加到Bean的容器中生效的呢?这些处理器的初始化环节在整个Sp原创 2021-02-25 18:05:15 · 490 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——BeanFactory的初始化
前言Spring容器最重要的功能就是实现Bean的管理,而BeanFactory是创建Spring容器中Bean的工具,在Spring容器中占据很重要的作用。在Spring容器Refresh的过程中,需要根据用户配置创建各种类型的Bean,也就是要用到BeanFactory,所以在Spring容器Refresh之前需要初始化BeanFactory,本文重点介绍Spring容器Refresh环节中BeanFactory的初始化,该环节在整个Spring容器启动过程中的位置如图中的红色方框部分所示。...原创 2021-02-25 14:29:48 · 445 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——容器PrepareRefresh
前言Spring容器启动过程中最重要的步骤是Refresh容器(本文不详细介绍容器的Refresh阶段,会在其它博客中详细介绍容器的Refresh),但是Refresh容器之前需要有一些准备工作,如初始化属性、环境校验以及初始化earlyApplicationListeners事件监听列表等操作,这些准备工作位于PrepareRefresh阶段,该阶段在整个Spring容器启动过程中的位置如图中的红色方框部分所示。PrepareRefresh包含的步骤Spring容器prepareRefresh阶段原创 2021-02-24 10:54:49 · 529 阅读 · 3 评论 -
小明学Spring Framework容器启动系列——Bean定义的注册
Spring Bean定义的注册前言前言Spring容器的构建过程是自动化的,意味着用户写好容器的定义之后,Spring容器可以自动根据用户的定义装配好容器。在我的其它博客中,简述了如何读取、解析Spring的xml文件和注解定义,通过以上步骤得到的Spring定义只是一个对象,并没有把这些Bean定义注册到Spring容器中,本文讲简述Spring如何将Bean定义注册到容器中。Bean定义的注册在整个Spring容器启动过程中的位置如图中的红色方框部分所示。...原创 2021-02-22 17:46:48 · 237 阅读 · 4 评论 -
小明学Spring基础系列——XML容器和注解容器的区别
前言Spring容器有两种定义方式,一种是使用XML文件定义,另外一种是Spring 2.5引入的java注解定义。两种容器定义的方式各有优缺点,由于SpringBoot使用的是注解形式的容器,所以近几年使用比较多的Spring容器定义是注解定义。本文将从这两种容器定义的实现方式、不同之处、优缺点等多方面介绍两种容器。下图为Spring容器定义的类型示例:对于不同形式定义的Spring容器,Spring有不同类型的容器名称,下图中列举了几种常见的Spring容器:XML容器和注解容器实现的区别对原创 2021-02-21 23:17:02 · 469 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——Bean定义的读取
Spring Bean定义的读取系列文章——小明学Spring Framework容器启动系列前言系列文章——小明学Spring Framework容器启动系列小明学Spring Framework容器启动系列——Spring Framework容器启动概览小明学Spring Framework容器启动系列——Bean定义的读取小明学Spring Framework容器启动系列——Bean定义的解析小明学Spring Framework容器启动系列——Bean定义包含的信息概要小明学Spri原创 2021-02-05 17:15:13 · 221 阅读 · 0 评论 -
小明学Spring Framework容器启动系列——Spring Framework容器启动概览
Spring Framework容器被广泛的应用与JEE开发,本系列文章主要针对Spring Framework容器启动过程中进行分析和学习原创 2021-02-05 15:48:20 · 303 阅读 · 0 评论 -
小明学Spring基础系列——Spring Bean定义的介绍
Spring 容器和Spring Bean一、 前言二、 Spring容器2.1 Spring的BeanFactory2.2 ApplicationContext三、Spring的Bean3.1 SpringBean定义3.2 Spring Bean的名称3.3 SpringBean的实例化方法3.4 SpringBean的作用域3.5 Bean生命周期中的回调方法一、 前言学习Spring其实就是学习Spring容器的过程,而Spring容器最重要的作用又是实现Spring Bean的管理,所以这两个原创 2021-01-21 18:22:13 · 348 阅读 · 0 评论 -
小明学Spring基础系列——容器的IOC和DI概念
Spring IOC容器和Spring Bean详解一、Spring IOC容器介绍1.1 IOC容器做了什么1.2 配置IOC容器的方法二级目录三级目录一、Spring IOC容器介绍1.1 IOC容器做了什么1.2 配置IOC容器的方法二级目录三级目录原创 2021-01-06 12:03:35 · 290 阅读 · 0 评论 -
小明学Spring基础系列——Bean的作用域
SpringBean生命周期解析Spring Bean生命周期类型Spring Bean生命周期类型原创 2020-12-31 09:46:50 · 240 阅读 · 2 评论 -
小明学Spring基础系列——资源文件加载
Java提供了标准java.net.URL用于资源访问,然而URL不足以满足各种资源文件的访问,例如没有办法访问类相对路径或者相对于ServletContext的资源等,Spring 提供一个Resource接口来统一这些底层资源一致的访问原创 2020-12-18 17:16:12 · 199 阅读 · 1 评论 -
小明学Spring基础系列——BeanInfo内省与Spring BeanUtil
一、前言Java的BeanInfo在工作中并不怎么用到,我也是在学习spring源码的时候,发现SpringBoot启动时候会设置一个属叫"spring.beaninfo.ignore",网上只能搜索到这个配置的意思是是否跳过java BeanInfo的搜索,没找到其他信息,但是BeanInfo又是什么呢?二、JavaBean介绍维基百科JavaBean的定义:JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和原创 2020-12-08 10:09:17 · 1692 阅读 · 1 评论 -
小明学java基础系列——反射类型Type
一、前言Type是Java 编程语言中所有类型的公共高级接口,也就是Java中所有"类型"的父类。注意区分Type和Object:Type :java所有类型的父类,如所有Class,数组,泛型,这些类型都继承了Type,在java反射中使用比较多.Object:java所有的对象的父类。官方文档:Type is the common superinterface for all types in the Java programming language. These include raw t原创 2020-10-30 18:11:47 · 540 阅读 · 2 评论 -
小明学SpringBoot系列——上下文环境属性加载
一、简介Spring上下文环境(ConfigurableEnvironment)主要包含应用程序运行环境的两个关键方面:设置配置文件(profiles)和基本属性(PropertySources)。官方文档介绍: Configuration interface to be implemented by most if not all Environment types. Provides facilities for setting active and default profiles and ma原创 2020-09-24 18:20:53 · 988 阅读 · 0 评论 -
小明学java基础系列——Java SPI机制
一、SPI机制介绍SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。1.1 SPI和API的区别API (Application Programming Interface)在大多数情况下,都是实现方制定接口并完成对接口的实现,调用方仅仅依赖接口调用,且无权选择不同实现。 从使用人员上来说,API 直接被应用开发人员使用。SPI (Service原创 2020-09-15 14:25:22 · 271 阅读 · 0 评论 -
小明学java基础系列——Java 类加载
Java11类加载学习笔记前言类加载器基本概念java.lang.ClassLoader 类介绍类加载器的树状组织结构类加载器的代理模式加载类的过程线程上下文类加载器Class.forName开发自己的类加载器文件系统类加载器网络类加载器类加载器与 Web 容器前言类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。J原创 2020-09-05 20:57:52 · 524 阅读 · 0 评论