当前位置: 首页 > news >正文

Spring 极简学习笔记(三)

Spring

核心定位:Spring Boot 不是替代 Spring,而是简化 Spring + SpringMVC 开发的脚手架,解决原生框架配置繁琐、依赖冲突、部署复杂的痛点。

一、Spring Boot 核心宗旨

自动配置、按需加载、开箱即用、零XML配置

Spring Boot 核心优势:基于条件注解自动装配常用组件,统一管理依赖版本,默认适配主流开发场景,开发者仅需关注业务代码。

二、核心原理:自动配置

1. 启动注解核心

项目入口类唯一注解:@SpringBootApplication该注解是三合一复合注解,等价于以下三个核心注解:

  • @Configuration:标识当前类为配置类,替代传统 XML 配置文件

  • @EnableAutoConfiguration:开启 Spring Boot 自动配置核心功能

  • @ComponentScan:自动扫描当前包及子包下所有带注解的组件(@Controller、@Service、@Component 等),无需手动配置扫描路径

2. 自动配置底层逻辑

核心机制:条件注解装配Spring Boot 预置大量自动配置类(META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports),遵循「有依赖则自动装配,无依赖则不生效」原则。

常用条件注解:

  • @ConditionalOnClass:项目存在对应类时,触发自动配置

  • @ConditionalOnMissingBean:容器中没有开发者自定义 Bean 时,才使用默认配置(用户配置优先

通俗理解:你不配置,框架用默认配置;你自定义配置,框架自动覆盖默认配置,兼顾便捷与灵活。

三、Starter 启动器(核心依赖机制)

Spring Boot 最大简化设计:将一组相关依赖打包为一个 Starter,无需手动导入多个依赖、无需管理版本。

1. 核心特点

  • 版本统一管控:父工程 spring-boot-starter-parent 统一管理所有依赖版本,彻底解决版本冲突

  • 按需引入:需要什么功能,导入对应 Starter 即可

2. 开发高频必备 Starter

Starter 依赖

核心作用

spring-boot-starter-web

集成 SpringMVC、Tomcat、JSON 解析,用于 Web 接口开发(最核心)

spring-boot-starter-test

集成 JUnit、MockMvc,用于单元测试、接口测试

spring-boot-starter-jdbc

集成 JDBC、数据库连接池,简化数据库操作配置

spring-boot-starter-aop

集成 AOP 切面功能,用于日志、权限、事务切面处理

四、全局配置文件

Spring Boot 放弃 XML,使用application 全局配置文件,统一管理项目所有配置,优先级:application.yml > application.properties(推荐 yml 格式,层级清晰、简洁易读)

1. 高频基础配置

# 服务器配置 server: port: 8080 # 端口号 servlet: context-path: / # 项目访问根路径 # 日志配置 logging: level: root: info # 全局日志级别 com.xxx.service: debug # 指定包日志级别

2. 配置文件核心特性

  • 自动绑定:可通过@ConfigurationProperties将自定义配置绑定到实体类

  • 多环境切换:支持 dev(开发)、test(测试)、prod(生产)环境配置,通过参数一键切换

五、Web 开发简化(对比原生 SpringMVC)

1. 无需手动配置的组件(全自动装配)

  • 内置 Tomcat 服务器,无需单独部署 Tomcat

  • 自动配置视图解析器、字符编码过滤器(统一 UTF-8 编码)

  • 自动整合 Jackson,实现 JSON 数据自动序列化/反序列化

2. 接口开发极简模板(REST 风格)

@RestController // 复合注解:@Controller + @ResponseBody,直接返回JSON @RequestMapping("/demo") public class DemoController { @GetMapping("/hello") public String hello() { return "Spring Boot 极简开发"; } }

六、Bean 管理与自定义配置

1. 手动注册 Bean(替代 XML)

使用配置类 + @Bean 注解,手动创建、注入第三方组件 Bean

@Configuration public class WebConfig { // 手动注册拦截器、线程池等组件 @Bean public RestTemplate restTemplate() { return new RestTemplate(); } }

2. 核心原则

框架默认 Bean 不满足需求时,自定义 @Bean 覆盖默认配置,符合「约定大于配置」思想。

七、Spring Boot 核心总结

  1. 核心定位:简化 Spring 开发的脚手架,底层完全基于 Spring + SpringMVC,无新功能,仅简化配置
  2. 核心注解:@SpringBootApplication(启动入口,三合一注解)
  3. 核心机制:Starter 依赖简化 + 条件注解自动配置
  4. 核心优势:零XML、内置服务器、版本统一、开箱即用、快速开发
  5. 配置原则:默认配置可用,自定义配置优先
http://www.jsqmd.com/news/1079630/

相关文章:

  • 问题解决方法:win11电脑突然找不到wifi图标
  • STM32单片机STM32二维码/条码识别结算系统156-1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_可以扫码
  • GPT-4.5生产级接入:环境隔离、密钥管理与错误熔断实战
  • Pinecone混合搜索实战:稠密+稀疏向量工程落地指南
  • 大路灯哪个品牌好?好用靠谱的护眼大路灯推荐,不踩雷选购秘籍
  • 东莞大型工厂饭堂承包哪家优
  • 从此告别素材荒|2026年视频剪辑新手用什么AI工具制作视频素材盘点
  • 前沿技术借鉴研讨-2026.6.25(低生育/孕产妇心血管疾病)
  • 23-440、STM32智能PID无刷电机PWM调速正反转设计-1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_可以扫码
  • 2026年第五届算法、数据挖掘和信息技术国际会议(ADMIT 2026)
  • 前端实战测评:基于调用 Gemini 3.5,完整交互页面搭建全流程
  • 实测横评:图片去水印工具有哪些?12款工具从免费在线到手机电脑全打通
  • PCF80空间单细胞蛋白组:有效应对组织自发荧光挑战,保障多重空间蛋白组学检测质量
  • SQL注入绕过WAF实战:从原理到Payload构造的完整对抗指南
  • 巴西开闸,iOS 支付规则进入碎片化时代
  • 依托达秘搭建运营系统:从流量捕猎到精细化农耕,2026 TikTok运营终局拼的是体系
  • 为什么越来越多三甲医院,深度选用语音通信系统?
  • ios云手机稳控环境不卡顿 苹果云手机原生真机更安全
  • ROS 2 Tracing 原理
  • 稀疏多项式优化:基于树宽与状态提升的SLchord/SLpush方法解析
  • API到底是个啥玩意?一文讲透,小白也能看懂!
  • 场外个股期权可以买吗?普通投资者需要注意哪些风险
  • 【软工方法论21】UML建模工具与画图技巧
  • 洗后干燥怎么护理
  • 国产系统怎么选?四类人群精准指南
  • BERT语义建模检测钓鱼URL实战指南
  • Labview-计时器
  • 领域驱动设计实战:从问题域分析到清晰建模的完整指南
  • AI给80/90年代的人,带来了新的机会
  • 抓包工具—tcpdump