Spring Boot入门

一、Spring Boot 核心认知

1. 简介

  • 定位:简化 Spring 应用开发的框架,整合 Spring 技术栈,是 J2EE 开发的一站式解决方案(脚手架)。
  • 核心优点:
    • 快速创建独立运行的 Spring 项目,无缝集成主流框架;
    • 内嵌 Servlet 容器(如 Tomcat),应用无需打成 war 包;
    • Starters 机制实现自动依赖与版本控制;
    • 大量自动装配,支持默认值修改,无 XML 配置、无代码生成,开箱即用;
    • 提供准生产环境的运行时监控,天然适配云计算。

2. 微服务基础

  • 定义:2014 年由 Martin Fowler 提出,是一种架构风格。将应用拆分为小型、独立业务功能的服务,通过 HTTP 轻量通讯,可独立部署、替换和升级。
  • 与单体应用对比:单体应用是 "ALL IN ONE",微服务是 "功能拆分、独立运行"。
  • 微服务优点:聚焦单一业务、小团队开发(2-5 人)、松耦合、多语言支持、易集成自动部署、便于扩展和第三方集成,可独立存储。
  • 微服务缺点:操作繁琐、分布式系统复杂、问题跟踪难、服务量增加后管理成本上升。
  • 参考文档:https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa

3. 环境准备

  • 约束条件:
    • JDK:1.7 及以上(推荐 1.8,如 1.8.0_112);
    • Maven:3.3 及以上(如 3.3.9);
    • IDE:IntelliJ IDEA 2017+ 或 STS;
    • Spring Boot:2.0.2.RELEASE(基于 Spring 5)。
  • Maven 配置:在 settings.xml 的 profiles 标签中添加 JDK1.8 编译配置,指定 source、target 和 compilerVersion 为 1.8。
  • IDEA 配置:指定 Maven 安装目录、用户设置文件和本地仓库路径,确保与本地 Maven 配置一致。

二、Hello World 实战

1. 项目搭建步骤

  1. 创建 Maven 工程(打包类型为 jar);
  2. 导入核心依赖:
  • 父依赖:spring-boot-starter-parent(版本 1.5.9.RELEASE),统一管理依赖版本;
  • web 启动器:spring-boot-starter-web(导入 web 模块所需所有依赖)。
  1. 编写主程序类:用 @SpringBootApplication 标注,通过 SpringApplication.run () 启动应用。
  2. 编写 Controller:用 @Controller 和 @RequestMapping ("/hello") 定义接口,@ResponseBody 返回字符串 "Hello World!"。
  3. 测试:运行主程序,浏览器访问http://localhost:8080/hello即可。如图:
  4. 简化部署:添加 spring-boot-maven-plugin 插件,打包为可执行 jar,通过 java -jar 命令运行。

2. 核心原理探究

(1)POM 文件
  • 父项目:spring-boot-starter-parent 的父依赖是 spring-boot-dependencies,作为 Spring Boot 的版本仲裁中心,导入依赖时默认无需指定版本(未管理的依赖除外)。
  • 启动器:spring-boot-starter-web是场景启动器,Spring Boot 将功能场景封装为 starters,导入对应 starter 即可自动引入该场景所需依赖。
(2)主程序类
  • @SpringBootApplication:组合注解,核心包含:
    • @SpringBootConfiguration:标记为 Spring Boot 配置类,本质是 @Configuration,配置类也是容器组件(@Component);
    • @EnableAutoConfiguration :开启自动配置,导入 EnableAutoConfigurationImportSelector,从类路径 META-INF/spring.factories 中加载自动配置类(xxxAutoConfiguration),自动配置组件;
    • @ComponentScan:扫描主配置类所在包及子包下的所有组件。

3. 快速创建项目(Spring Initializer)

  • 功能:IDE 支持通过向导快速创建 Spring Boot 项目,联网选择所需模块,自动生成主程序、目录结构和配置文件。
  • 默认目录:
    • static:存放静态资源(js、css、images);
    • templates:存放模板页面(支持 freemarker、thymeleaf,默认不支持 JSP);
    • application.properties:全局配置文件,可修改默认配置。
相关推荐
苏三说技术1 小时前
Claude Code从失控到起飞,只用了这些技巧
后端
长栎2 小时前
写 for 循环写了十年,你却从没用过迭代器模式最狠的那一面
后端
LiaCode2 小时前
Redis 在生产项目的使用
前端·后端
用户559822481222 小时前
Docker Compose Down 导致容器数据误删——ext4 日志恢复全记录
后端
LiaCode3 小时前
一天学完 redis 的爽翻版核心知识总结
前端·后端
大刚测试开发实战3 小时前
如何内网穿透访问本地私有化部署的TestHub
前端·后端·github
xiaodaoluanzha3 小时前
迄今為止,最簡單的編程語言 Nolang
前端·后端
Csvn3 小时前
Docker 容器管理入门 — 从镜像到容器编排
后端
用户762352425913 小时前
ShardingJDBC
后端
行者全栈架构师3 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端