每日八股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程序媛9 小时前
JVM 基础与 GC 垃圾回收详解|可达性分析、分代模型、垃圾收集器、STW
java·开发语言·jvm·spring boot·后端·面试
她的男孩10 小时前
JAR 全对仍 checksum mismatch:Forge Admin 把 Flyway 从 filesystem 改成 classpath
java·数据库·spring boot
小蒜学长10 小时前
基于数据挖掘的京东商城商品推荐系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·推荐系统·个性化推荐
IT研究室10 小时前
最新计算机毕业设计选题推荐-基于spring boot的医院体检管理系统-网站-文档指导-Java-springboot
java·spring boot·课程设计
长不大的杨瑞杰10 小时前
把 Spring Boot 接口变成 AI 工具:OpenAPI、参数映射与异常语义化实战
人工智能·spring boot·后端
RuoyiOffice10 小时前
Vue3+TypeScript 企业管理平台统一UI:新增一个模块,为什么还要重新调样式?
spring boot·typescript·vue3·组件化开发·企业管理软件·ruoyi office·统一ui
流烟默1 天前
SSE 实战:在 SpringBoot + Vue 项目中零依赖实现轻量级实时消息推送
vue.js·spring boot·后端·sse
ly76891 天前
Spring Boot 集成 PostgreSQL 的连接池调优:HikariCP、prepared statement 与服务器资源边界
spring boot·postgresql·hikaricp·连接池调优
wangjialelele1 天前
一文梳理 Spring Cloud 核心组件:Eureka、Nacos、OpenFeign、LoadBalancer 与 Gateway
java·spring boot·spring·spring cloud·微服务·nacos
七夜zippoe1 天前
Spring Boot 接通义千问:从拿 Key 到第一个对话接口跑通(保姆级)
java·spring boot·后端