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:全局配置文件,可修改默认配置。
相关推荐
java1234_小锋10 分钟前
[免费]SpringBoot+Vue勤工助学管理系统【论文+源码+SQL脚本】
spring boot·后端·mybatis·勤工助学
沿着路走到底13 分钟前
JS事件循环
java·前端·javascript
爱笑的眼睛1124 分钟前
超越 `cross_val_score`:深度解析Scikit-learn交叉验证API的架构、技巧与陷阱
java·人工智能·python·ai
踏浪无痕1 小时前
从 Guava ListenableFuture 学习生产级并发调用实践
后端·面试·架构
❀͜͡傀儡师1 小时前
SpringBoot 扫码登录全流程:UUID 生成、状态轮询、授权回调详解
java·spring boot·后端
可观测性用观测云2 小时前
观测云在企业应用性能故障分析场景中的最佳实践
后端
a努力。2 小时前
国家电网Java面试被问:Spring Boot Starter 制作原理
java·spring boot·面试
一 乐2 小时前
酒店预约|基于springboot + vue酒店预约系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
我是谁的程序员2 小时前
iOS CPU 占用率在性能问题中的表现形式
后端