Spring Boot 的基础入门,教你如何从零开始创建一个基础的SpringBoot项目

目录

一、Spring Boot 简介(脚手架)  

二、微服务

三、环境准备

1、项目创建

2、导入SpringBoot的相关依赖

 3、编写主程序,启动springboot应用

4、编写相关的Controller、Service

5、运行主程序测试

6、简化部署

四、HelloWorld探究

1、POM文件

(1)父项目

(2)父项目的父项目

(3)启动器(Starters)


一、Spring Boot 简介脚手架  

定义:

        简化了Spring应用开发的一个框架,对整个Spring技术栈的一个大整合,提供了J2EE开发的一站式解决方案。

  1. 优点:

        1、快速创建独立运行的spring项目以及与主流框架集成

        2、使用嵌入式的Servlet容器,应用无需打成war包,内嵌Tomcat

        3、Starters自动依赖和版本控制

        4、大量的自动装配,简化开发,也可以修改默认值

        5、无需配置XML无代码生成开箱即用

        6、准生产环境的运行时应用监控

        7、与云计算的天然集成

二、微服务

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
  • 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;

微服务优点:

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

微服务缺点:

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

三、环境准备

1、项目创建

详情可参考之前的文章:SpringBoot项目的创建方式(五种)_springboot项目创建-CSDN博客

这里直接进行案例的测试

2、导入SpringBoot的相关依赖

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

这个配置包含了Spring Boot的父项目依赖和构建Web应用所需的Spring Boot的Web启动器依赖。

 3、编写主程序,启动springboot应用

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

4、编写相关的ControllerService

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

5、运行主程序测试

启动主程序,在浏览器输入 http://localhost:8080/hello (因为为在配置文件中配置端口号,所以使用的是springboot的默认8080端口号)

可以发现不需要在SSM项目配置Tomcat就可以访问网页了

这是因为SpringBoot中内嵌了Tomcat,会根据导入SpringBoot的版本自动匹配Tomcat版本

6、简化部署

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

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

将这个应用打成jar包,直接在命令窗口此包路径下使用 java -jar 包名 执行命令后,可以直接在浏览器访问该应用(关闭命令窗口后则无法继续访问)

四、HelloWorld探究

1、POM文件

(1)父项目

作用:为Spring Boot项目提供基础的构建配置和依赖管理,确保项目中使用的依赖版本一致

配置:

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

(2)父项目的父项目

作用:spring-boot-starter-parent的父项目是spring-boot-dependencies,它负责管理Spring Boot应用中所有依赖的版本,是Spring Boot的版本仲裁中心。以后我们导入依赖默认是不需要写版本。(没有在dependencies里面管理的依赖依然需要声明版本号)

配置:

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

说明<relativePath> 标签指定了父项目相对于当前项目的路径,但由于<relativePath/>spring-boot-starter-parent中未指定,Maven将从远程仓库中解析版本。

(3)启动器(Starters)

作用:简化依赖管理,提供特定场景下所需的依赖集合。

配置:

<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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值