spring

  • 2024.10.14 | cuithink | 73次围观
    循环依赖产生原因在创建B类的Bean的过程中,如果B类中存在一个A类的a属性,那么在创建B的Bean的过程中就需要A类对应的Bean,但是,触发B类Bean的创建的条件是A类Bean在创建过程中的依赖注入,所以这里就出现了循环依赖:ABean创建-->依赖了B属性-->触发BBean创建--->B依赖了A属性--->需要ABean(但ABean还在创建过程中)从而导致ABean创建不出来,BBean也创建不出来。三级缓存:singletonObject...
  • 2024.10.12 | cuithink | 75次围观
    SpringBoot启动流程
    主要是分两部分new SpringApplication(primarySource).run(args),一部分是前面的对象,一部分是run。SpringApplication(primarySource):确定web应用类型加载ApplicationContextInitializer加载ApplicationListener确定主启动类run():准备Environment对象打印Banner实例化IOC容器准备容器,为容器设置environment,BeanFacto...
  • 2024.10.11 | cuithink | 49次围观
    spring事务
    Spring 事务的种类在 Spring 中,事务管理可以分为两大类:声明式事务管理和编程式事务管理。编程式事务可以使用 TransactionTemplate 和 PlatformTransactionManager 来实现,需要显式执行事务。允许我们在代码中直接控制事务的边界,通过编程方式明确指定事务的开始、提交和回滚。transactionTemplate.execute()声明式事务是建立在 AOP 之上的。其本质是通过 AOP 功能,对方法前后进行拦截,将事务处理的...
  • 2024.10.11 | cuithink | 19次围观
    spring aop
    Spring AOP里面的几个名词(1)切面(Aspect):切面是通知和切点的结合。通知和切点共同定义了切面的全部内容。 在Spring AOP中,切面可以使用通用类(基于模式的风格) 或者在普通类中以 @AspectJ 注解来实现。(2)连接点(Join point):指方法,在Spring AOP中,一个连接点 总是 代表一个方法的执行。 应用可能有数以千计的时机应用通知。这些时机被称为连接点。连接点是在应用执行过程中能够插入切面的一个点。这个点可以是调用方法时、抛出异...
  • 2024.10.11 | cuithink | 46次围观
    Bean生命周期中的一些类
    16.1. ApplicationContextInitializer常用于设置环境变量属性,IOC容器对象创建完以后执行。public class myApplicationInitializer implements ApplicationContextInitializer {     @Override     public ...
  • 2024.10.11 | cuithink | 71次围观
    FactoryBean和BeanFactory的区别
    BeanFactory 和 FactoryBean 是 Spring 框架中两个不同的接口,它们的作用和使用场景略有不同:BeanFactory:BeanFactory 是 Spring 框架中定义 bean 的工厂接口。它是 Spring 框架的核心接口之一,负责创建、配置和管理 bean 对象。BeanFactory 提供了一种松耦合的方式,允许将应用程序的配置和依赖注入与实际的 Java 代码分离开来。BeanFactory 的实现包括 XmlBeanFactory、A...
  • 2024.10.11 | cuithink | 36次围观
    Bean的创建过程
    那么Spring到底是如何来创建一个Bean的呢,这个就是Bean创建的生命周期,大致过程如下利用该类的构造方法来实例化得到一个对象(但是如何一个类中有多个构造方法,Spring则会进行选择,这个叫做推断构造方法)得到一个对象后,Spring会判断该对象中是否存在被@Autowired注解了的属性,把这些属性找出来并由Spring进行赋值(依赖注入)依赖注入后,Spring会判断该对象是否实现了BeanNameAware接口、BeanClassLoaderAware接口、Be...
  • 2024.10.11 | cuithink | 69次围观
    Spring支持的几种bean的作用域
    Spring框架支持以下五种bean的作用域:singleton : bean在每个Spring ioc 容器中只有一个实例。prototype:一个bean的定义可以有多个实例。request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。session:在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下...
  • 2024.10.11 | cuithink | 37次围观
    BeanFactory 和 ApplicationContext有什么区别?
    BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。依赖关系BeanFactory:是Spring里面最底层的接口,包含了各种Bean的定义,读取bean配置文档,管理bean的加载、实例化,控制bean的生命周期,维护bean之间的依赖关系。ApplicationContext接口作为BeanFactory的派生,除了提供BeanFa...
  • 2024.10.11 | cuithink | 38次围观
    Spring框架中有哪些不同类型的事件
    Spring 提供了以下5种标准的事件:上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext 接口中的refresh()方法时被触发。上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。上下文停止事件(ContextStoppedEvent):当容器调用Configurabl...