柳州市网站建设_网站建设公司_前后端分离_seo优化
2026/1/17 14:39:43 网站建设 项目流程

文章目录

  • 第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 等方法)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询