Spring相关知识集锦----1

一、Spring两大核心是什么?

    Spring两大核心:IOC(控制反转)、AOP(面向切面编程)

    IOC:控制反转,指创建对象控制权的转移;以前创建对象的主动权和时机是由自己把握;现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用。

    AOP:面向切面编程,作为面向对象的一种补充;用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用模块。

二、Sring生命周期

1.实例化:实例化一个Bean

2.按照Spring上下文对实例化的Bean进行配置,也就是IOC注入

3.如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName方法,此处传递的是Spring配置文件中Bean的ID

4.如果这个Bean实现了BeanFactoryAware接口,会调用它实现的setBeanFactory方法,此处传递的是Spring工厂本身

5.如果这个Bean实现了ApplicationContextAware接口,会调用setApplicationContext方法,传入Spring的上下文

6.如果这个Bean关联了BeanPostProcessor接口,会调用postBeforeInitialization方法

7.如果这个Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法

8.如果Bean关联了BeanPostProcessor接口,将会调用postAfterInitialization方法

9.当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean接口,会调用其实现的destroy方法

10.最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法

三、Spring支持Bean的作用域

1)singleton:默认作用域,单例Bean,每个容器中只有一个bean实例

2)prototype:为每一个bean请求创建一个实例

3)request:为每一个request请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收

4)session:与request范围类似,同一个session会话共享一个实例,不同会话使用不同实例

5)global-session:全局作用域,所有会话共享一个实例。

四、Spring框架中用到的设计模式

1.工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象实例

2.单例模式:Bean默认为单例模式

3.代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术

4.模板方法:用来解决代码重复的问题

5.观察者模式:定义对象间一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象得到通知被动更新

五、SpringBoot产生背景

过去,基于spring构建一个应用,往往都需要开发人员定义样板化的配置,例如:springmvc的配置、mybatis配置等,但这些配置往往与业务逻辑无关,且具有一定通用性。SpringBoot是一个用于构建基于spring框架的独立应用程序的框架,它采用了自动配置原则,以减少开发人员在搭建应用架构方面的时间和精力,同时提升了系统的可维护性和扩展性。

六、Spring如何解决循环依赖问题

spring的循环依赖的理论依据其实是基于java的引用传递,当我们获取到对象的引用时,对象的field或属性是可以延后设置的。spring是靠三级缓存来解决循环依赖问题的。

七、Spring简化配置是如何简化的

springboot通过自动配置,让开发者无需手动配置大量繁琐的配置项。它基于项目的依赖关系,自动配置合适的bean和参数,从而极大简化了spring应用的初始化过程。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值