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:全局配置文件,可修改默认配置。
相关推荐
無限進步D5 小时前
Java 运行原理
java·开发语言·入门
難釋懷5 小时前
安装Canal
java
是苏浙5 小时前
JDK17新增特性
java·开发语言
不光头强5 小时前
spring cloud知识总结
后端·spring·spring cloud
GetcharZp8 小时前
告别 Python 依赖!用 LangChainGo 打造高性能大模型应用,Go 程序员必看!
后端
阿里加多8 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood9 小时前
java中`==`和`.equals()`区别
java·开发语言·python
小小李程序员9 小时前
Langchain4j工具调用获取不到ThreadLocal
java·后端·ai