• 2024-06-30SpingBoot原理
    配置优先级SpringBoot配置的优先级从高到低依次为命令行参数、JNDI属性、Java系统属性、操作系统环境变量、外部配置文件、内部配置文件、注解指定的配置文件和编码中直接指定的默认属性。具体如下:命令行参数:启动应用时,通过命令行指定的参数拥有最高优先级。例如,使用--server
  • 2024-06-22Spring Bean 生命周期详解
    SpringBean生命周期详解在Spring框架中,Bean的生命周期由Spring容器全权管理。了解和掌握Bean的生命周期对于使用Spring开发稳定且高效的应用程序至关重要。本文将详细介绍SpringBean生命周期的五个主要阶段:实例化、属性注入、初始化、使用和销毁,并涵盖各个阶
  • 2024-06-21SpringBoot配置Druid连接池
    简介:    连接池的作用是为了提高性能,将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对Server端进行访问。这样省略(复用)了创建连接和销毁连接的过程(TCP连接建立时的三次握手和销毁时的四次握手),从而在性能上得到了提高。Druid是一个JDBC组件,它包括三部
  • 2024-06-21Spring常用注解,自动扫描装配Bean
    1引入context命名空间(在Spring的配置文件中),配置文件如下:Xml代码xmlns:context="http://www.springframework.org/schema/context"http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd
  • 2024-06-20Spring的一些思考(一)
    new一个对象和依赖注入一个对象的区别?new一个对象时,直接使用关键字new来创建实例。这个对象的生命周期由自己来管理,可以实现对对象的细粒度的控制依赖注入是创建对象的另一种方式。DI可以减轻耦合,生命周期由Spring来负责,只需配置该对象和它依赖的对象如何配置即可DI的优
  • 2024-06-20三级缓存---解决 Spring 循环依赖
    1.循环依赖1.1什么是循环依赖首先,什么是循环依赖?这个其实好理解,就是两个Bean互相依赖,类似下面这样:“”"@ServicepublicclassAService{ @Autowired BServicebService;}@ServicepublicclassBService{ @Autowired AServiceaService;}“”"AServic
  • 2024-06-20Spring5中常用的注解说明
    用于创建对象的注解相当于:<beanid=""class="">1.1@Component注解作用:把资源让 spring 来管理。相当于在 xml 中配置一个 bean。属性:value:指定bean的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。1.2@Controller @Servic
  • 2024-06-19【重写SpringFramework】第一章beans模块:Bean的销毁(chapter 1-9)
    1.前言Bean的生命周期包括初始化和销毁操作,上节介绍了Bean初始化流程,本节来看Bean的销毁流程是如何实现的。在实际应用中,绝大多数对象并不需要执行销毁操作,但某些对象本身管理着一定的资源。当Spring容器关闭时,所有的对象都会被虚拟机回收。在此之前,这些特殊的对象
  • 2024-06-19【重写SpringFramework】第一章beans模块:Bean的初始化(chapter 1-8)
    1.前言前边我们介绍了创建实例和填充对象的流程,这是整个创建流程最重要的工作。有时候用户需要对Bean进行自定义的操作,这一过程称为初始化。此外,还有一些比较特殊的对象,本身管理着一定的资源,当对象销毁时需要释放这些资源,因此我们还需要相应的销毁操作。初始化和销毁操作
  • 2024-06-19Spring是如何通过三级缓存解决循环依赖的
    Spring是如何利用三级缓存解决循环依赖的转载自:https://www.cnblogs.com/xw-01/p/17561035.html1.定义问题1.1什么是循环依赖其实好理解,就是两个Bean互相依赖,类似下面这样:@ServicepublicclassAService{ @Autowired BServicebService;}@ServicepublicclassBSer
  • 2024-06-19Spring容器系列-FactoryBean使用/原理
    Spring-FactoryBean使用/原理  概要  在某些情况下,实例化Bean过程比较复杂,若按照传统的方式,则需要在中提供大量的配置信息,不够灵活,这时采用编码的方式能得到一个简单的方案。  Spring为此提供了一个org.springframework.bean.factory.FactoryBean的工厂类接口,用户
  • 2024-06-18【Spring】Bean管理
    获取Bean要从IOC容器当中来获取到bean对象,需要先拿到IOC容器对象@AutowiredprivateApplicationContextapplicationContext;//IOC容器对象Spring容器中提供了一些方法,可以主动从IOC容器中获取到bean对象,下面介绍3种常用方式:根据name获取beanObjectgetBean(Stringna
  • 2024-06-172024-06-17-Spring 源码阅读(三)Bean 的生命周期
    由于Spring源码非常多,博客中贴源码会占用大量篇幅,阅读困难。详细分析部分会以commit提交形式关联源码提交,画图例来说明源码整体逻辑。Bean生命周期主体逻辑相关代码:Bean的基本创建流程、lazyInit、循环依赖Bean对象创建基本流程通过最开始的关键时机点分析,我们知道Bean
  • 2024-06-17[面试题]Spring
    [面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]SpringBoot[面试题]SpringCloud[面试题]SpringMVC[面试题]SpringSpring是一个很庞大的技术体系,可以说包容一切,所以本文我们按照下面的顺序,罗列
  • 2024-06-17Spring容器系列-bean的生命周期
    Spring容器系列-bean的生命周期  bean的生命周期从调用beanFactory的getBean开始,到这个bean被销毁,可以总结为以下七个阶段:  1. 处理名称,检查缓存  2.处理父子容器  3.处理dependsOn  4.选择scope策略  5.创建bean  6.类型转
  • 2024-06-17spring面试题
    Spring框架中都用到了哪些设计模式?工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;单例模式:Bean默认为单例模式。代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;模板方法:用来解决代码重复的问题。比如.RestTemplate,JmsTemplate,JpaTemp
  • 2024-06-17javab每日一题:在spring里有哪些常用注解?
     Spring框架提供了许多注解,用于简化配置、管理Bean、处理事务、处理AOP等。以下是一些在Spring中常用的注解以及它们的作用:@ComponentScan:作用:用于启用组件扫描,指定要扫描的基础包。Spring会自动扫描并注册带有@Component及其派生注解(@Service、@Repository、@Controller
  • 2024-06-17sping怎么解决循环依赖
     使用三级缓存解决循环依赖问题。循环依赖指的是两个或者两个以上的bean在创建的时候相互依赖而导致出现死循环的情况无法成功创建bean。spring中使用三级缓存解决循环依赖,这三级缓存都是由map组成的。其中第一层是用来存放已经创建好的bean对象,第二层是用来存放“半成品”
  • 2024-06-17Spring容器系列-启动原理(下)
    Spring容器系列-启动原理(下)  从上一篇文章《Spring容器系列-启动原理(上)》中,介绍了Spring容器初始化的核心方法refresh()的整体情况。这篇文章来详细展开介绍。其中比较重要的方法会标记上***  一、refresh中的12个方法  1. prepareRefresh  主要作用:记录下容器
  • 2024-06-17AOP代理的创建【底层源码】
    代理的创建(源码)创建代理的方法是postProcessAfterInitialization:如果Bean被子类标识为代理,则使用配置的拦截器创建一个代理源码参考:AOP切面底层原理【底层源码】-postProcessAfterInitialization源码部分wrapIfNecessary方法主要用于判断是否需要创建代理,如果bean能
  • 2024-06-17Spring
    Spring**1、Spring框架是什么?Spring框架是一个开源的、轻量级的、基于Java的应用程序开发框架,用于构建企业级应用。它提供了全面的基础设施支持,包括依赖注入(DependencyInjection)、面向切面编程(Aspect-OrientedProgramming)、事务管理(TransactionManagement)、数据访问(Data
  • 2024-06-17SpringBoot基础篇
    SpringBoot视频链接:【黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关】https://www.bilibili.com/video/BV14z4y1N7pg?p=20&vd_source=12bdb5b78bd5d1c45cab173f3aad839b概述SpringBoot是Spring提供的一个子项目
  • 2024-06-17Bean生命周期
    目录一、bean生命周期基本流程二、流程细节1、初始化方法和销毁方法1)自定义式:2)接口式3)声明式4)执行顺序2、InstantiationAwareBeanPostProcessor实例化后置处理器2、BeanPostProcessor初始化后置处理器3、xxxAware接口三、总结执行流程一、bean生命周期基本流程
  • 2024-06-16Spring中Bean的实例化过程
    AbstractAutowireCapableBeanFactory.doCreateBean方法一、调用createBeanInstance方法中会获取容器中所有的BeanPostProcessor对象,并进行循环筛选出来自于SmartInstantiationAwareBeanPostProcessor接口的实现类,并调用实现类的determineCandidateConstructors方法获取到有@
  • 2024-06-16Spring中Bean的初始化创建AbastractApplicationContext.FinishBeanFactoryInitialization
    AbastractApplicationContext.FinishBeanFactoryInitialization模版调用子类DefaultListableBeanFacotry.preInstantiateSingletons通过循环子类DefaultListableBeanFactory中收集到的所有beanDefinitionNames,对满足条件的Bean进行初始化,getBean操作会调用父类AbstractBean