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:全局配置文件,可修改默认配置。
相关推荐
嘻哈baby35 分钟前
微服务本地联调不再痛苦:多服务开发调试完整方案
后端
苏打水com36 分钟前
HTML/CSS 核心考点详解(字节跳动 ToB 中台场景)
java·前端·javascript
-大头.36 分钟前
Spring批处理与任务管理全解析
java·linux·spring
哈哈哈笑什么38 分钟前
订单状态实时通知的生产级完整方案
后端
action191640 分钟前
Nano Banana2API国内接入神方案!0.1元/次稳到哭
后端
无限进步_42 分钟前
C++从入门到类和对象完全指南
开发语言·c++·windows·git·后端·github·visual studio
科普瑞传感仪器1 小时前
基于六维力传感器的机器人柔性装配,如何提升发动机零部件装配质量?
java·前端·人工智能·机器人·无人机
她说..1 小时前
Java AOP完全指南:从原理到实战(全套知识点+场景总结)
java·开发语言·spring·java-ee·springboot