《springboot》

本文详细介绍了SpringBoot的核心功能和优势,包括约定大于配置的原则、jar包独立运行、内置容器支持、依赖简化等。深入探讨了SpringBoot的自动配置原理、解决跨域问题的方法、循环依赖处理方式以及Bean的生命周期等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.springboot的功能优点

先回答:总的来说是约定大于配置

1.可以以jar包的形式独立运行项目

2.内嵌tomat或者jetty,无需以war包形式部署

3.starter pom简化了maven依赖的导入

2.springboot的starter是做什么的?

诞生starter原因是当不同项目互相引入jar包时每次都需要改变@ComponentScan注解中的参数

3.springboot启动原理

面试----SpringBoot自动装配原理_小白咯咯的博客-CSDN博客

源码跟踪到META-INF:

@SpringBootApplication==>@EnableAutoConfiguration==>AutoConfigurationImportSelector==>getCandidateConfigurations==>loadFactoryNames==>classLoader.getResources("META-INF/spring.factories")


 

4springboot自动装配原理

从springboot启动原理中的注解进入到AutoConfigurationImportSelector后,先读取所有jar包的“

META-INF/spring.factories”文件内容的value。放到一个List<String>

接着删除LIst<String>中的重复项,然后调用sort方法排序。再新建一个set集合用来存“被排除的依赖”,调用checkExcludedClasses方法从list中排除依赖。然后调用filter中的match方法匹配,string中的元素与class类是否一致,一致的话加载启动

6.springboot解决跨域的方法

SpringBoot项目针对跨域问题的三种解决方案 - 简书

7.spring的循环依赖问题

循环依赖指的是多个对象之间的依赖关系形成一个闭环。
循环依赖分两种:属性的循环依赖和构造器的循环依赖。
1.构造器的循环依赖无法解决:构造器实例化前必须先实例化参数,循环引用的参数无法提前被实例化
2.属性注入(setting)的循环依赖解决:核心思想是3级缓存
①Spring根据无参构造创建bean,并暴露一个ObjectFactory,用于提前暴露一个创建中的bean,将a标识放在当前创建bean的池中
②……………….暴露一个ObjectFactory,将b标识放在当前创建的bean池中
③………………..暴露一个ObjectFactory,将c标识放在bean池中
④先注入a,再注入b再注入c

8 bean的生命周期

面试题积累-Spring-bean的生命周期_Rick1024-CSDN博客_springbean的生命周期面试

9.springboot注解

Spring Boot最核心的27个注解,你了解多少? - 无敌的码农 - 博客园

10.spring的事务传播机制

默认的传播行为propagation_required,默认的隔离级别isolation_default,使用数据库默认的事务隔离级别

Spring事务七大传播机制与五个隔离级别_延宝小白马的博客-CSDN博客

11.springboot事务失效8大原因

Spring事务失效的 8 大原因 - ldsweely - 博客园

12@Autowird和@Resources区别

@Autowire默认按照类型装配,默认情况下它要求依赖对象必须存在如果允许为null,可以设置它required属性为false,如果我们想使用按照名称装配,可以结合@Qualifier注解一起使用。
@Resource默认按照名称装配,当找不到与名称匹配的bean才会按照类型装配,可以通过name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象.

13.SpringMVC原理

SpringMVC概念及原理_我能在河边钓一整天的鱼-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值