每日八股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:

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

相关推荐
Java码农也是农1 小时前
Spring 事务详解:@Transactional 如何生效、何时回滚、传播行为怎么选
java·spring boot·spring·事务
学长毕设2 小时前
基于SpringBoot的游乐园管理系统-附源码
java·spring boot·后端
杨凯凡2 小时前
Spring Boot 文件上传怎么做才安全?流式落盘、路径校验与数据库一致性实战
java·spring boot·文件上传·后端安全·数据库一致性
howard20054 小时前
Spring Boot 版成绩统计分析
spring boot·成绩统计分析
Yyyyyy~16 小时前
【Java】Day4Web基础知识
java·spring boot
逆回21 小时前
升级 Boot 4 后,我的 mock 全红了
spring boot
学长毕设1 天前
基于SpringBoot的野生动物公益保护平台设计与实现-附源码
java·spring boot·后端
她的男孩1 天前
三人会签只批了一个就往下走:Forge Admin 把 all / any / ratio 写成 completionCondition
spring boot·低代码·工作流引擎
vipxieliang1 天前
ValidX vs 手写验证代码:开发效率对比实测
java·spring boot·后端
vipxieliang1 天前
虚拟线程与 GraalVM:Spring Boot 3.x 云原生性能跃迁
java·spring boot·后端