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

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

相关推荐
【赫兹威客】浩哥2 小时前
基于SpringBoot+Vue3的企业办公自动化OA系统|集成Activiti工作流引擎
spring boot·后端·课程设计
༄沐࿆风࿆࿆3 小时前
Spring Boot 3 + Vue 3 全栈外卖系统:RabbitMQ异步解耦、MySQL/Neo4j双引擎推建
vue.js·spring boot·java-rabbitmq
胸中有沟壑7 小时前
SpringBoot使用WebSocket
spring boot·后端·websocket
星空21 小时前
Springboot复习
java·spring boot·spring
老郑聊AI业财智造1 天前
TOGAF、DDD与微服务:软件架构的多维透视
spring boot·spring cloud·微服务·金融·架构·软件工程·制造
wno7041 天前
Spring Boot JdbcTemplate配置Druid多数据源
java·spring boot·后端
wear工程师1 天前
Spring Boot 服务挂了却没重启?先分清 systemd 的三次判断
spring boot
旺仔学长 哈哈1 天前
52486|高校专业评估不再靠表格:Spring Boot 本科专业质量评估管理系统实战
数据库·spring boot·毕业设计·教育管理
2601_963870211 天前
【计算机毕业设计】基于Spring Boot+Vue的高考志愿填报系统的设计与实现
spring boot·课程设计·高考