跳转至

2025年8月30日

面试题

spring 容器中 bean 的特点

午间演讲示例

单例:避免频繁创建或销毁,提高对象的复用性

预加载:项目启动,立马创建所有对象

spring 框架中应用了哪些设计模式

第一个,工厂模式。

Spring容器其实就是一个大的工厂,负责创建和管理Bean。我们不需要自己new对象,容器会统一帮我们生产。就像去超市买饮料,不需要自己去饮料厂生产,超市货架上已经摆好了。

第二个,单例模式。

Spring默认的Bean都是单例的,也就是容器里只有一份。这样既节省资源,也方便统一管理。就像公司只有一个考勤机,所有人都打在这一台上。

第三个,代理模式。

AOP就是通过代理模式来实现的,比如JDK动态代理和CGLIB。它的作用是给对象织入一些额外功能,比如日志、事务、安全控制。就好比你点外卖时,可以顺便加个“送纸巾”的服务,原来的送餐功能没变,只是额外增强了。

第四个,模板方法模式。

Spring的JdbcTemplate就是典型的模板方法模式。它帮我们把复杂的流程,比如连接数据库、执行SQL、关闭资源,都写好了,我们只需要在回调里写业务逻辑。就像火锅店,锅底、配菜都帮你准备好,你只管涮着吃就行。

第五个,观察者模式。

Spring的事件机制就是观察者模式。一个事件发布出去,多个监听器可以同时响应。比如公司群里发一个通知,财务、行政、人事都能接收到,并各自做相应的处理。

午间演讲示例

Spring框架中常用的设计模式有工厂模式、单例模式、代理模式、模板方法模式和观察者模式。

你对 springboot 的理解

午间演讲示例

Spring Boot是在Spring基础上的一层升级,目的是让开发更快更简单。

它有三个明显的特点:

一是自动配置,根据依赖自动帮我们配好Bean;

二是内嵌服务器,自带Tomcat,打包成jar就能运行;

三是起步依赖,官方帮我们把常用依赖整合好,避免冲突。

使用过哪些 springboot 起步依赖?起步依赖优点

午间演讲示例

spring-boot-starter-web用来做Web开发,里面集成了SpringMVC和Tomcat;

spring-boot-starter-test则封装了常见的测试框架。

使用这些起步依赖的最大优点就是简化了依赖管理,帮我们把常用的库和版本搭配好,避免冲突,让我们“开箱即用”,少配置,快速启动项目。

springboot 自动配置原理?自动配置优点

午间演讲示例

Spring Boot的自动配置是基于Spring的注解和条件装配机制实现的:

@SpringBootApplication@EnableAutoConfiguration@Import(AutoConfigurationImportSelector.class) → 从 spring.factories/AutoConfiguration.imports 读取自动配置类 → 结合 @Conditional 系列注解过滤 → 注入符合条件的 Bean

它会通过@EnableAutoConfiguration开启自动配置,底层利用spring.factories里配置的自动配置类,然后结合@Conditional系列注解判断环境里是否有相关依赖,如果满足条件就自动注入Bean。

比如你引入了Web依赖,就会自动配置好DispatcherServlet和Tomcat。

它的优点是大大减少了手动配置,开发者只需要引入依赖,就能“开箱即用”,不用自己再去写一堆XML或者Java配置,从而提升了开发效率。