2026SpringBoot高频面试题5道 📅 2026/8/5 10:56:27 Spring Boot自动配置的工作原理SpringBoot基于约定优于配置原则通过SpringFactoriesLoader机制加载META-INF/spring.factories中的配置类结合Conditional系列条件注解根据项目类路径依赖、已存在的Bean等条件自动判断并启用对应配置无需开发者手动编写大量配置代码实现开箱即用的效果。完整执行流程入口触发SpringBootApplication中的EnableAutoConfiguration注解导入AutoConfigurationImportSelector作为自动配置的核心选择器。加载候选配置通过SPI机制读取配置文件Spring Boot 2.x读取META-INF/spring.factoriesSpring Boot 2.7 / 3.x迁移至META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports加载效率更高。条件过滤通过Conditional系列注解筛选仅满足条件的配置类生效比如类路径存在对应依赖、容器中无用户自定义Bean等。配置绑定通过ConfigurationProperties将application.yml中的参数绑定到对应配置类支持自定义修改默认配置。2.Spring AOP的实现原理Spring AOP底层基于动态代理实现当目标对象实现接口时使用JDK动态代理生成代理类当目标对象没有实现接口时使用CGLIB动态代理通过字节码修改生成目标类的子类作为代理对象。通过Advisor和Pointcut定义切点与通知在方法执行前后插入日志、事务等横切逻辑实现业务代码与通用逻辑的解耦。3.Spring事务的传播行为事务传播行为定义了当前事务与已有事务的交互规则核心类型包括REQUIRED默认的Spring事物传播级别如果当前存在事务则加入这个事务如果不存在事务就新建一个事务。REQUIRE_NEW不管是否存在事务都会新开一个事务新老事务相互独立。外部事务抛出异常回滚不会影响内部事务的正常提交。NESTED如果当前存在事务则嵌套在当前事务中执行。如果当前没有事务则新建一个事务类似于REQUIRE_NEW。SUPPORTS表示支持当前事务如果当前不存在事务以非事务的方式执行。NOT_SUPPORTED表示以非事务的方式来运行如果当前存在事务则把当前事务挂起。MANDATORY强制事务执行若当前不存在事务则抛出异常.NEVER以非事务的方式执行如果当前存在事务则抛出异常。Spring事务传播级别一般不需要定义默认就是REQUIRED除非在嵌套事务的情况下需要重点了解。4.Spring Boot中SpringBootApplication注解的作用这是SpringBoot项目的核心启动组合注解内部包含三个关键注解SpringBootConfiguration标记当前类为配置类、EnableAutoConfiguration开启自动配置机制、ComponentScan开启组件扫描自动加载当前包及其子包下的Component、Service等注解标记的组件。5.Spring Boot的Jar包可以直接运行的底层原理SpringBoot的可执行Jar中内置了内嵌Tomcat等Web容器同时自定义了类加载器优先加载Jar包内的依赖资源通过Launcher启动类直接调用内嵌容器的启动方法无需额外部署外部Web服务器通过java -jar命令即可直接启动运行。