当前位置: 首页 > article >正文

Spring Boot介绍、入门案例、环境准备、POM文件解读

文章目录

    • 1.Spring Boot(脚手架)
    • 2.微服务
    • 3.环境准备
      • 3.1创建SpringBoot项目
      • 3.2导入SpringBoot相关依赖
      • 3.3编写一个主程序;启动Spring Boot应用
      • 3.4编写相关的Controller、Service
      • 3.5运行主程序测试
      • 3.6简化部署
    • 4.Hello World探究
      • 4.1POM文件
        • 4.1.1父项目
        • 4.1.2父项目的父项目
        • 4.1.3启动器


1.Spring Boot(脚手架)

Spring Boot是简化Spring应用开发的一个框架,整个Spring技术栈的一个大整合,J2EE开发的一站式解决方案

Spring Boot的优点:

  • 快速创建独立运行的spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成war包,内嵌Tomcat
  • Starters自动依赖和版本控制
  • 大量的自动装配,简化开发,也可以修改默认值
  • 无需配置XML无代码生成开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成

2.微服务

Spring Cloud微服务治理方案

​ 2014年,Martin Fowler 和 James Lewis 发表了一篇重要的文章:《Microservices - a definition of this new architectural term》。在这篇文章中,他们提出了微服务架构的基本概念。

从传统的单体应用到微服务架构,经历了以下演变:

  1. 单体架构(Servlet/SSM):最早的架构模式,适用于简单应用。
  2. SOA:拆分服务以提高重用性和灵活性,但存在集成和性能的挑战。
  3. 微服务(Spring Cloud):将服务进一步细化,追求每个服务的自治性和独立性,解决了 SOA 中的复杂性问题。

微服务:架构风格(服务微化)

  • 微服务是指开发单个小型的但有业务功能的服务,每个服务都有自己处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务也指一种种松耦合的有一定的有界上下文的面向服务架构。
  • 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;
  • 单体应用:ALL IN ONE
  • 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;

微服务文档https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa

微服务优点:

  • 每一个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
  • 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
  • 微服务是松耦合的,是有功能意义的服务,无论是开发阶段或是部署阶段都是独立的。
  • 微服务能够使用不同的语言开发。
  • 微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,一个团队的新成员能够更快投入生产。
  • 微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果,
  • 微服务能够即时被要求扩展。
  • 微服务能够部署中低端配置的服务。
  • 易于和第三方集成。
  • 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库。

微服务缺点:

  • 微服务架构可能带来过多的操作
  • 可能双倍的努力
  • 分布式系统可能复杂难以管理
  • 因为分布部署跟踪问题难
  • 当服务量增加,管理复杂性增加

3.环境准备

环境约束

jdk 1.8,maven 4.5.6,IDEA2017,SpringBoot 2.5.6

3.1创建SpringBoot项目

省略,可以查看SpringBoot项目的创建方式-CSDN博客

3.2导入SpringBoot相关依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version>
        <relativePath/> 
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>

3.3编写一个主程序;启动Spring Boot应用

注意要将主程序放入三级根目录下

image-20241227135619248

/**
* @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
*/
@SpringBootApplication
public class SpringBoot01Application {
    public static void main(String[] args) {
    // Spring应用启动起来
    SpringApplication.run(SpringBoot01Application.class,args);
    }
}

3.4编写相关的Controller、Service

@Controller
public class HelloController {
   @ResponseBody
   @RequestMapping("/hello")
   public String hello(){
      return "Hello World!";
   }
}

3.5运行主程序测试

image-20241227135744762

image-20241227135904445

使用浏览器访问,8080为未设置的默认端口号

image-20241227135951594

不需要如SSM项目配置Tomcat就可以访问网页,因为SpringBoot中内嵌了Tomcat,会根据导入SpringBoot的版本自动匹配Tomcat版本

image-20241227140232816

3.6简化部署

在pom.xml添加下面这个插件

<!‐‐ 这个插件,可以将应用打包成一个可执行的jar包;‐‐>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

将这个项目进行打包

image-20241227140440294

java -jar 包名

image-20241227141150419

当命令窗口关闭后,则不能访问

4.Hello World探究

4.1POM文件

4.1.1父项目
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

作用spring-boot-starter-parent 是 Spring Boot 官方提供的一个父级 POM(项目对象模型)文件,它是一个专为 Spring Boot 项目定制的父 POM。它为你的 Spring Boot 项目提供了一些默认的配置,包括插件版本、依赖项管理和一些常见的构建配置。

功能

  • 继承此父 POM,Maven 会自动为项目配置很多常见的插件和默认依赖项。
  • 提供合理的默认配置,简化项目设置,开发者无需单独配置构建插件(如 maven-compiler-pluginmaven-spring-boot-plugin 等)。
  • 集成 Spring Boot 所需的特定插件和依赖项,使构建和打包过程更加顺畅。
  • relativePath 是空的,意味着从 Maven 仓库中查找父 POM,而不是相对路径(用于特殊情况)。
4.1.2父项目的父项目

他来真正管理Spring Boot应用里面的所有依赖版本;是Spring Boot的版本仲裁中心;

以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.5.6</version>
  </parent>

作用spring-boot-dependencies 是 Spring Boot 的依赖管理 BOM(Bill Of Materials)文件。它用于统一管理所有 Spring Boot 项目的依赖版本,确保依赖库的版本兼容性。它并不直接提供插件或构建配置,而是为项目提供了一个集中式的依赖管理。

功能

  • 通过引入 spring-boot-dependencies,你无需手动指定 Spring Boot 项目所需的依赖版本号,父 POM 会自动为你管理这些版本。
  • 它帮助统一管理 Spring 相关库的版本,避免了版本冲突或不兼容的情况。
  • 它并不会直接引入所有的依赖,而是提供一个依赖版本的推荐集合,可以通过 <dependencyManagement> 来进行声明,从而控制项目中的依赖版本。
4.1.3启动器
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

spring-boot-starter-web

spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;

Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter

相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器


http://www.kler.cn/a/456132.html

相关文章:

  • UE(虚幻)学习(一) UE5.3.2和VS2022的安装以及遇到的问题和一些CS8604、CA2017报错问题.
  • HIVE数据仓库分层
  • 华为麦芒5(安卓6)termux记录 使用ddns-go,alist
  • 部分背包问题
  • 504 Gateway Time-out nginx如何处理
  • dell g7重装系统后无法识别耳机
  • springboot503基于Sringboot+Vue个人驾校预约管理系统(论文+源码)_kaic
  • Visual Studio 2022 QT5.14.2 环境下缺少pro文件以及QT库或模块的引用问题
  • 【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块
  • LabVIEW生物发酵远程在线监控
  • ORB-SLAM2源码学习:System.cc: System::TrackStereo、TrackRGBD、TrackMonocular追踪器接口
  • 《中国旅游报》投稿指南
  • Java测试开发平台搭建(六)持久化之mybatis配置
  • 路由反射器
  • 强化学习寻宝游戏
  • C#使用Tesseract C++ API过程记录
  • 【Unity3D】Particle粒子特效或3D物体显示在UGUI上的方案
  • 【电子通识】拆解支付宝碰一碰卡片
  • 现代网络负载均衡与代理导论
  • Android着色器SweepGradient渐变圆环,Kotlin