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

第1章:快速入门SpringBoot

文章目录

  • 第1章 快速入门SpringBoot
    • SpringBoot和SpringCloud微服务关系
    • SSM框架介绍
    • SpringBoot工程创建
    • SpringBoot第一个接口
    • SpringBoot常见注解
    • 控制器与请求映射注解

第1章 快速入门SpringBoot

SpringBoot和SpringCloud微服务关系

SpringBoot 核心定位

  • SpringBoot4.0 是 Spring 生态下的快速开发脚手架
  • 核心目标是 “约定优于配置”,通过自动配置、嵌入式服务器、starter 依赖等特性;
  • 消除传统 Spring 开发中繁琐的 XML 配·置和依赖管理工作;
  • 它专注于快速构建独立的、可运行的 Spring 应用
  • 是微服务架构中 “单个服务节点” 开发的基础工具。

SpringCloud 核心定位

  • SpringCloud 是基于 SpringBoot 构建的微服务治理框架
  • 专注于解决分布式系统:服务注册发现、负载均衡、熔断降级、配置中心、网关路由等核心问题;
  • 它并非单一框架,而是一系列微服务组件的集合,提供了微服务架构的 “全套解决方案”。

基础与上层的依赖关系

  • SpringBoot4.0 是 SpringCloud 的基础底座
    • 所有 SpringCloud 组件(如 Eureka、Gateway、Nacos 等)均基于 SpringBoot 开发;
    • 依赖 SpringBoot 的自动配置、依赖注入等核心能力。
  • SpringCloud 是 SpringBoot 的分布式扩展
    • SpringBoot 解决 “单个服务如何快速开发”;
    • SpringCloud 解决 “多个 SpringBoot 服务如何协同工作形成分布式系统”

功能边界划分

维度SpringBoot4.0 作用SpringCloud 作用
开发目标快速构建独立可运行的单体 / 服务节点实现多服务分布式协同与治理
核心能力自动配置、嵌入式服务器、starter 依赖、简化开发服务注册发现、负载均衡、熔断、网关、配置中心
应用场景单体应用开发、微服务单个节点开发分布式微服务集群搭建与管理
依赖关系可独立使用,无需依赖 SpringCloud必须基于 SpringBoot 开发(如 SpringBoot4.0)

协同工作流程

  • 基于 SpringBoot4.0 开发单个微服务节点(如用户服务、订单服务),每个服务独立打包运行。
  • 通过 SpringCloud 组件为这些服务添加治理能力,如用 Nacos 实现服务注册发现,用 Gateway 实现网关路由
  • 各 SpringBoot 服务通过 SpringCloud 组件实现:,跨服务调用、负载均衡、故障隔离等分布式特性,形成完整微服务集群。

SSM框架介绍

  • Spring 框架

    • 核心定位
      • 企业级 Java 开发一站式框架
      • 专注于 “解耦组件、简化开发”
      • 是整个 SSM 生态的核心基础。
    • 核心价值
      • 通过 IOC(控制反转)实现对象生命周期与依赖的统一管理
      • 通过 AOP(面向切面编程)实现日志、事务等横切逻辑与业务逻辑分离
      • 兼容 JDK21 新特性(虚拟线程、密封类等)
      • 性能与稳定性较旧版本提升 30%+。
  • SpringBoot 框架

    • 核心定位
      • Spring 生态的 “快速开发脚手架”,
      • 基于 “约定优于配置” 理念,
      • 简化 Spring7 与第三方框架(如 MyBatis4.0)的整合流程。
    • 核心价值
      • 消除繁琐 XML 配置,
      • 提供 Starter 依赖机制(一键引入所需组件)
      • 嵌入式服务器(Tomcat10.1 内置)
      • 支持一键打包部署
      • 大幅降低 SSM 项目初始化与开发成本。
  • MyBatis 框架

    • 核心定位
      • 轻量级 ORM(对象关系映射)框架
      • 专注于 Java 对象与数据库表的映射
      • 简化原生 JDBC 开发流程。
    • 核心价值
      • 通过 XML / 注解实现 SQL 与 Java 代码

SpringBoot工程创建

SpringBoot第一个接口

com.guslegend.model.User

@Data@NoArgsConstructor@AllArgsConstructorpublicclassUser{privateintid;privateStringname;privateIntegerage;}

com.guslegend.controller.UserController

@RestController@RequestMapping("/user")publicclassUserController{privatestaticfinalList<User>users=newArrayList<User>();static{users.add(newUser(1,"张三",18));users.add(newUser(2,"李四",19));users.add(newUser(3,"王五",20));}@RequestMapping("/list")publicList<User>getUserList(){returnusers;}}

@RestController是@Controller和@ResponseBody的复合注解:标识这是一个REST接口控制器,自动将返回值转为JSON

@RequestMapping:接口基础路径,所有接口URL以 /user 开头

SpringBoot常见注解

常用注解:

注解分类注解名称核心作用适用场景
核心启动类注解@SpringBootApplication整合 @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan,项目启动核心注解主启动类唯一标注
控制器注解@Controller标识控制器类,用于接收 HTTP 请求(需配合 @ResponseBody 返回 JSON)传统 MVC 或混合开发(返回页面 / 数据)
请求映射注解@RequestMapping定义接口 URL 路径与支持的 HTTP 方法,可标注在类 / 方法上通用接口路径配置
参数绑定注解@RequestBody接收请求体中的 JSON 数据,自动绑定到 Java 对象POST/PUT 请求传递复杂参数
控制器注解@RestController整合 @Controller + @ResponseBody,标识 REST 接口控制器,自动返回 JSON 数据前后端分离接口开发
请求映射注解@GetMapping@RequestMapping 的 GET 方法简化版,专门处理查询类请求查询资源(列表 / 详情)
请求映射注解@PostMapping@RequestMapping 的 POST 方法简化版,专门处理创建类请求新增资源(如用户注册)
请求映射注解@PutMapping@RequestMapping 的 PUT 方法简化版,专门处理全量更新类请求全量更新资源(如修改用户所有信息)
请求映射注解@DeleteMapping@RequestMapping 的 DELETE 方法简化版,专门处理删除类请求删除资源(如删除用户)
参数绑定注解@RequestParam从 URL 查询参数中获取值(如?name = 张三 & age=20)URL 查询参数传递场景
参数绑定注解@PathVariable从 URL 路径中获取参数(如 /api/user/{id} 中的 id)路径参数传递场景
参数绑定注解@RequestHeader获取 HTTP 请求头中的信息(如 Authorization、User-Agent)需要请求头信息的场景
参数绑定注解@CookieValue获取请求中的 Cookie 值(如 SESSIONID)需要 Cookie 信息的场景
配置组件注解@Configuration标识当前类为配置类,替代传统 XML 配置文件自定义 Bean 或配置逻辑
配置组件注解@Bean在配置类中定义 Spring Bean,等价于 XML 中的标签自定义组件(如线程池、工具类)
配置组件注解@Value注入配置文件中的单个属性值,支持默认值和 SpEL 表达式单个简单配置项注入
配置组件注解@ConfigurationProperties批量绑定配置文件属性到 Java 实体类,支持层级配置复杂配置项(如多属性组合)
组件标识注解@Component通用组件注解,标识类为 Spring 管理的 Bean无明确分层的通用组件
组件标识注解@Service标注服务层类,标识业务逻辑组件服务层(业务逻辑处理)
组件标识注解@Repository标注数据访问层类,标识数据操作组件(配合 MyBatis 的 @Mapper 使用)数据访问层(如 Mapper 接口)
依赖注入注解@Autowired自动注入 Spring 容器中的 Bean,默认按类型匹配Bean 依赖注入(Spring 原生)
依赖注入注解@Qualifier配合 @Autowired 使用,按 Bean 名称注入(解决同类型多 Bean 冲突)同类型多 Bean 的精准注入
依赖注入注解@Resource按名称(默认)或类型注入 Bean,遵循 JSR-250 规范跨框架兼容的 Bean 注入
事务管理注解@Transactional标识方法或类开启事务管理,支持事务传播属性、隔离级别等配置数据操作类(如新增 / 修改 / 删除)
异步任务注解@EnableAsync开启异步任务支持,需配合 @Async 使用主启动类或配置类
异步任务注解@Async标识方法为异步任务,由 Spring 异步线程池执行耗时操作(如日志记录、邮件发送)
定时任务注解@EnableScheduling开启定时任务支持,需配合 @Scheduled 使用主启动类或配置类
定时任务注解@Scheduled标识定时任务方法,支持 cron 表达式、固定延迟、固定速率等配置周期性任务(如定时统计、数据同步)

@SpringBootApplication

  • 作用:SpringBoot 项目的核心注解,用于标识主启动类,
  • 是三个注解的组合
    • @SpringBootConfiguration
    • @EnableAutoConfiguration
    • @ComponentScan 。

@SpringBootConfiguration:

  • 标识当前类为配置类(替代传统 XML 配置文件)
  • 允许通过@Bean定义组件。

@EnableAutoConfiguration

  • 开启自动配置(SpringBoot 核心特性),
  • 根据 classpath 中的依赖自动初始化 Bean
    • 如引入spring-boot-starter-web
    • 自动配置 Tomcat 和 SpringMVC

@ComponentScan

  • 自动扫描当前类所在包及其子包中的@Component注解(包括@Controller@Service等),
  • 将其注册为 Spring 容器中的 Bean。

控制器与请求映射注解

@RestController

  • 标识当前类为REST 接口控制器,是@Controller + @ResponseBody的组合。

  • 替代传统@Controller需在方法上额外加@ResponseBody的繁琐操作,

  • 直接将方法返回值转为 JSON 格式(无需视图解析器)。

  • 适用场景:前后端分离项目(仅返回数据,不返回页面)。

@RequestMapping

  • 定义接口的 URL 路径和支持的 HTTP 方法,可标注在类或方法上。

  • 类上:指定当前控制器所有接口的基础路径(统一前缀)。

  • 方法上:指定当前接口的具体路径(与类路径拼接为完整 URL)。

@GetMapping / @PostMapping / @PutMapping / @DeleteMapping

  • @RequestMapping的简化版,

  • 分别对应 HTTP 的 GET/POST/PUT/DELETE 方法,专注于 RESTful 接口设计。

    注解对应 HTTP 方法适用场景
    @GetMappingGET查询资源(如获取用户列表)
    @PostMappingPOST创建资源(如新增用户)
    @PutMappingPUT全量更新资源(如修改用户所有信息)
    @DeleteMappingDELETE删除资源(如删除用户)

@PathVariable

  • 作用:获取 URL 路径中的参数(如/api/user/{id}中的id)。

@RequestParam

  • 作用:获取 URL 中的请求参数(QueryString,如?name=张三&age=20);
  • 核心属性:
    • value/name:参数名(与请求参数 key 对应);
    • required:是否必填(默认true,不填会报错);
    • defaultValue:默认值(当参数未传递时使用)。

@RequestBody

  • 作用:接收请求体中的 JSON 数据,并自动绑定到 Java 对象(适用于 POST/PUT 等方法)。
http://www.jsqmd.com/news/258451/

相关文章:

  • 基于SpringBoot的美发管理系统毕业设计
  • 实用指南:物联网实训室系列产品介绍
  • 学霸同款2026 AI论文软件TOP10:继续教育必备测评
  • 权威数据发布:2026年GEO服务商加盟代理市场深度调研分析与靠谱推荐清单 - 品牌推荐
  • 我居然才知道!微信立减金不用花,回收能赚这么多 - 可可收
  • 2026年靠谱的全自动抛光机,打磨机器人抛光去毛刺,门执手自动抛光机厂家综合实力参考 - 品牌鉴赏师
  • 基于SpringBoot的美术馆管理系统毕业设计源码
  • 全场景适配与低门槛入局:2026年面向不同区域代理商的五大GEO加盟平台全景对比 - 品牌推荐
  • 2026年京东e卡换现金新技巧,2分钟轻松搞定 - 淘淘收小程序
  • 2026年靠谱GEO招商加盟服务商严选推荐:这五家企业的实战案例与口碑经得起检验 - 品牌推荐
  • 2026年专业的重庆家装管道,成都家装管道,贵阳家装管道厂家选购推荐手册 - 品牌鉴赏师
  • 权威数据发布:2026年GEO服务商加盟代理模式深度调研分析与选择指南 - 品牌推荐
  • 基于贾子智慧理论体系(四大支柱 + 五五三三定律)的 AI 未来发展深度解构
  • 2026年有实力的水龙头打磨机器人,门把手打磨机器人,汽车配件打磨机器人厂家选型参考指南 - 品牌鉴赏师
  • 2026年GEO招商加盟服务商终极指南:从技术流派到合作模式的全链路拆解 - 品牌推荐
  • 救命神器!专科生毕业论文必备TOP9 AI论文平台深度测评
  • 2026年温州净化工程公司施工流程,哪家更显专业权威?无尘车间/洁净厂房/洁净室/车间净化,净化工程公司生产商推荐 - 品牌推荐师
  • 2026年GEO服务商加盟代理实力榜单:基于技术架构与市场口碑的五大推荐 - 品牌推荐
  • AI搜索优化服务商怎么选?2026年最新聚焦效果与合规的终极选择指南 - 品牌推荐
  • 2026年AI优化服务商深度数据调研分析:五大主流品牌的技术路径与适配场景全解码 - 品牌推荐
  • 徐州市丰沛睢宁新沂邳州区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐 - 老周说教育
  • 2026年AI搜索优化服务商深度解析:从技术架构到行业适配的五大头部企业全链路拆解 - 品牌推荐
  • 2026年GEO优化服务商加盟实力解码:技术流与市场派企业的加盟商评价与案例复盘 - 品牌推荐
  • 完整教程:Meta SAM Audio:多模态音频分割的新纪元
  • 盘点南通、连云港等地不锈钢EP管制造商推荐,哪家性价比高 - 工业品牌热点
  • 常州市天宁钟楼新北武进金坛溧阳区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 老周说教育
  • 2.认识Blender——界面及基础功能
  • 2026年AI搜索优化公司怎么选?聚焦垂直行业与综合能力的五大服务商选型指南 - 品牌推荐
  • Unity ScriptableObject 技术文档
  • 常州市天宁钟楼新北武进金坛溧阳区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐 - 老周说教育