每日八股day27

本系列帖子为鼠鼠复习八股巩固记忆和个人理解所写,如有错误纯属本人实力不佳,欢迎各位大佬阅读指正

1.SpringBoot对比Spring优势?

Spring是一套核心框架,做IOC、AOP,SpringBoot不是替代Spring,是基于Spring的快速开发脚手架,底层依然使用Spring核心。

SpringBoot优势:

自动配置,告别繁琐XML配置

原生Spring需要大量xml配置,手动配置Bean、数据库、MVC等,SpringBoot通过条件注解@Conditional实现自动装配,根据项目依赖自动创建Bean、几乎零xml,减少样板配置代码。

起步依赖简化依赖管理

Spring需要自己管理一大堆jar包,手动控制版本,容易出现版本冲突,SpringBoot提供起步依赖(starter)启动器,例如spring-boot-starter-web,引入一个starter自动导入一套配套版本依赖,版本由Boot父工程统一管控,解决版本冲突。

内置Web服务器

Spring开发web项目,需要外部单独部署Tomcat,打包放到容器,SpringBoot内置Tomcat,默认打jar包,java-jar直接运行,不需要额外web容器,部署简单。

嵌入式容器,独立应用

项目打成jar包即可直接启动,不依赖外部容器,运维部署简单,非常适合微服务。

自带监控,健康检查

引入actuator可以暴露接口,查看应用运行状态,Bean信息、内存、日志等,Spring原生需要自己整合第三方组件。

简化项目搭建

Spring Initializr快速生成项目骨架,不用手动搭建目录结构。

缺点:

自动配置黑盒,底层封装较重,遇到自动装配异常,排查问题难度比原生Spring高。

2.SpringBoot用到哪些设计模式?

单例模式Singleton:

整个容器只创建一个Bean实例,减少对象创建开销,复用对象。

工厂模式Factory:

简单工厂,Spring最顶层工厂接口,根据BeanName获取Bean对象。

抽象工厂,继承BeanFactory,扩展更多能力。

封装对象创建,使用者不用new,交给容器创建管理Bean。

代理模式Proxy(AOP核心):

不修改目标类源码,对方法做增强,实现日志、事务、权限。

适配器模式Adapter:

适配不同Handler,统一执行Controller,多种参数解析器,消息转换器也体现适配器。

装饰器模式Decorator:

在不改变原有对象基础上,动态增强对象功能。

模板方法模式Template Method:

定义一套固定执行流程,可变逻辑交给子类实现,简化重复模板代码。

策略模式Strategy:

同一套行为有多种实现,运行时选中对应策略执行。

建造者模式Builder:

分布构建复杂对象,把对象构造和属性赋值分离。

观察者模式Observer:

事件发布,和事件监听解耦,比如项目启动完成事件。

相关推荐
武哥聊编程4 小时前
【AI实战项目】基于SpringAI+Springboot+Vue的AI面试刷题训练平台
vue.js·人工智能·spring boot·springai
vipxieliang4 小时前
固定电话验证详解:区号、号码、分机号的完整验证
java·spring boot
步行cgn4 小时前
Spring Boot 主入口类上的 @Enable 和 @Scan 注解详解
java·spring boot·后端
xixingzhe25 小时前
SpringBoot DDD 实战入门文档
spring boot·spring·ddd
杨运交7 小时前
[069][公共模块]Spring Boot 全局异常处理与参数校验实战(下):校验异常精细化处理与 WebFlux 适配
java·spring boot·后端
行者-全栈开发7 小时前
Spring Boot + FFmpeg 视频批量处理实战:压缩、HLS切片与异步任务引擎
spring boot·ffmpeg·异步处理·视频压缩·hls切片·批量任务·redis队列
Andya_net7 小时前
Spring Boot | 条件注解完全指南:从 @Conditional 到 @ConditionalOnExpression 的原理、实践与避坑
spring boot·后端·python
小荷才露尖尖角,早有蜻蜓立上头8 小时前
class java.util.LinkedHashMap cannot be cast to xxx
java·spring boot
MZA6669 小时前
Spring Boot 实战:基于自定义注解 + AOP 实现 Kafka 消息无侵入异步上送
java·spring boot·kafka
wxwx_bscxy3229 小时前
springboot巡更系统10192
java·spring boot·后端·巡更系统