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:全局配置文件,可修改默认配置。
相关推荐
leobertlan2 小时前
2025年终总结
前端·后端·程序员
面向Google编程3 小时前
从零学习Kafka:数据存储
后端·kafka
易安说AI4 小时前
Claude Opus 4.6 凌晨发布,我体验了一整晚,说说真实感受。
后端
易安说AI4 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
易安说AI4 小时前
用 Claude Code 远程分析生产日志,追踪 Claude Max 账户被封原因
后端
JH30734 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
颜酱5 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
Coder_Boy_5 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
invicinble5 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟6 小时前
使用ASM和agent监控属性变化
java