在看源码的时候,我们发现了一个接口ImportBeanDefinitionRegistrar,当时只是简单的了解了一下spring的大概,没有做复习。在我们开始学习mybatis源码的时候,发现这个接口成为我们必要学习的东西。那么这个接口是做什么的,还有就是这个接口的原理是什么。怀着疑问,让我们学习一下吧!首先我们还是不去直接看原理,我们还是先根据网上资料实践一下这个接口的功能。根据资料,该接口的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-26 12:56:32
                            
                                88阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在上篇文章 Spring 注解编程之模式注解 中我们讲到 Spring 模式注解底层原理,依靠 AnnotationMetadata 接口判断是否存在指定元注解。这篇文章我们主要深入 AnnotationMetadata,了解其底层原理。Spring 版本为 5.1.8-RELEASETable of Contents generated with DocTocAnnotationMetadata            
                
         
            
            
            
            一. 从Spring 3.0开始,增加了一种新的途径来配置Bean Definition,这就是通过Java Code配置Bean Definition。与XML和Annotation两种配置方式不同点在于:
   前两种方式XML和Annotation的配置方式为预定义方式,即开发人员通过XML文件或者Annotation预定义配置Bean的各种属性后,启动Spring容器,Spring容器            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-09 22:01:12
                            
                                33阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                   @Configuration和@Componet、@Service、@Controller、@Repository的类创建并添加到Spring容器中; 那么,基于Spring的这一特性,我们能否自己编写一个注解,让Spring在启动时扫描指定目录下带有指定注解的的类创建并加载到Spring容器中呢; 我们先创建一个Maven工程,在Maven中添加Spring的依赖  <!--            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-09 17:31:30
                            
                                169阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、实现原理1、ConfigServer(配置中心服务端)从远端git拉取配置文件并在本地git一份,ConfigClient(微服务)从ConfigServer端获取自己对应 配置文件;2、当远端git仓库配置文件发生改变,ConfigServer如何通知到ConfigClient端,即ConfigClient如何感知到配置发生更新?Spring Cloud Bus会向外提供一个http接口,即            
                
         
            
            
            
            ps:bean初始化相关的内容实在太多,不得已只好将其分成上下两篇来讲上篇:主要讲解BeanFactory的相关内容,包括后置处理器的相关内容下篇:主要讲解Bean的实例化系列文章链接:《SpringBoot源码初学者(一):SpringBoot功能扩展接口的使用与源码分析》《SpringBoot源码初学者(二):SpringBoot事件监听器》 目录一、啥子是Bean???1、bean的配置方式            
                
         
            
            
            
            方法一SpringContextUtilpublic class SpringContextUtil {
    private static ApplicationContext applicationContext;
    //获取上下文
    public static ApplicationContext getApplicationContext() {
        return            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-15 15:53:34
                            
                                655阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录简介源码分析resolveBeforeInstantiation创建Bean实例doCreateBean创建Bean实例Supplier创建实例FactoryMethod创建实例自动装配构造函数创建实例 无参构造函数创建实例总结简介在Spring框架中创建Bean的流程步骤可归纳为getBean -> doGetBean -> createBean -> doCre            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-19 14:04:14
                            
                                48阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在讨论 Spring 时使用的 Bean 指的是托管在 Spring 容器(或称 IoC 容器)中的 Java 类对象。 Bean 的作用范围分为 Singleton、Prototype 两种(spring-web 又增加了 request\session 等)。 默认情况下,Bean 的作用范围是 Singleton。 在 IoC 容器启动时,默认会创建、初始化 Singleton Bean,这            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-18 21:08:45
                            
                                658阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             文章目录3.5 BeanDefinition3.5.1 BeanDefinition概述3.5.3 BeanDefinition的结构与设计3.5.3.1 AttributeAccessor3.5.3.2 BeanMetadataElement3.5.3.3 AbstractBeanDefinition3.5.3.4 GenericBeanDefinition3.5.3.5 ChildBeanD            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-17 15:58:06
                            
                                42阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.springboot启动过程分析springboot启动过程run方法:public ConfigurableApplicationContext run(String... args) {
   //创建一个StopWatch对象并调用它的start方法,该类是Spring提供的一个计时器类
   StopWatch stopWatch = new StopWatch();
   stopW            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-25 10:59:44
                            
                                51阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            首先,spring aop 是使用动态代理实现的,分布是jdk的动态代理和cglib一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP&nbs            
                
         
            
            
            
            有时候我们需要在项目中动态加载或者卸载Bean,这就需要Bean的class文件事先是存在的,只是在需要的时候才加载进来。 比如我定义一个接口OneService和它的一个实现类,下面是比较常规的实现,调用OneService的时候,调的就是OneServiceImplA public interf ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-10 14:12:00
                            
                                1765阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            SpringBoot整合Quartz定时任务1、定时任务相关概念2、SpringBoot集成Quartz2.1、Quartz相关表2.2、pom.xml2.3、application.yml2.4、java对任务增删改查2.4.1、common相关配置类2.4.2、pojo类2.4.3、task类2.4.4、Controller类3、一些理解3.1、Quartz的集群原理以及配置? 1、定时任务            
                
         
            
            
            
            本章摘要:本章重点介绍springboot中controller的使用。现在Java多数人都用来写JavaWeb了,所以Controller变成很常用,也是最基础的必备技术,掌握了Controller的使用,就可以写对外接口了,进行SpringBoot的简单体验。目录一、@Controller与@RestController用法和区别二、类文件外面添加 RequestMapping,相当            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-13 14:17:32
                            
                                122阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            本节大纲 :(1)动态注入bean思路;(2)动态注入实现代码;(3)多次注入同一个bean的情况;(4)动态删除; 接下来我们看下具体的内容:(1)动态注入bean思路; 在具体进行代码实现的时候,我们要知道,Spring管理bean的对象是BeanFactory,具体的是DefaultListableBeanFactory,在这个类当中有一个注入bean的方法:registerBeanDefi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-23 19:02:10
                            
                                57阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言: spring boot项目简化了对外部项目的引入,使我们能够狠方便的构建一个web项目,我们通常在开发的过程中会开发出一些公用的模块组件,这样在项目找那个引入后能够直接使用,减少了轮子的重复构造,同时服务引入的模块化操作,能够更多的节省资源和开发效率。那么在这个过程中,我们需要对外部引入的资源bean需要进行注入扫描,这样,我们在关住构建自身的服务同时,也需要对外部的依赖进行管理,同时也可            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-25 14:50:04
                            
                                94阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最近要开发一个项目,用到Spring Boot技术,但由于我是这方面的新手,先找个例子入门学习一下,结果死活跑不通,在浏览器里面访问相应的资源,遇到了下面这样的错误:Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-03 13:30:27
                            
                                30阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            我们通过向 IoC 容器注入 FilterRegistrationBean 的实例,SpringBoot 就自动使其作为一个 Filter 在 Web 容器中生效。那这是什么原理呢?通过继承关系与属性,我们可以看出 FilterRegistrationBean 本质是对 javax.servlet.Filter 的包装,同时也是 Spring Bean 其继承了 org.springframewo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-16 21:13:26
                            
                                286阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            获取当前上下文运行环境getCurrentWebApplicationContextWebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();在SpringMVC环境下获取到的是一个XmlWebApplicationContext类型的Root WebApplicationContext:在Spr            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-20 17:51:03
                            
                                30阅读
                            
                                                                             
                 
                
                                
                    