2.1、创建Maven工程

2.1.1、创建空项目

2.1.2、设置项目名称和路径

2.1.3、设置项目sdk

2.1.4、项目初始状态

注意:需要关闭项目再重新打开,才能看到SpringBoot-Part文件夹

2.1.5、配置maven

2.1.6、创建module

右击SpringBoot-Part文件夹,创建新module

选择maven

配置module名称和路径

module初始状态

3、引入依赖

3.1、添加父工程

    <!--
Spring Boot提供了一个名为spring-boot-starter-parent的工程;
该工程对各种常用依赖的版本进行了管理;
只需要以该工程为父工程,就不用再操心依赖的版本问题了;
以后需要用到什么依赖,直接引入坐标(不需要添加版本)即可。
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.18</version>
</parent>

3.2、添加web启动器

    <dependencies>
<!--
为了让Spring Boot完成各种自动配置,必须引入Spring Boot提供的自动配置依赖,称为启动器;
因为是web项目,所以这里引入web启动器。
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

4、创建启动类

package online.liaojy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; /**
* @author liaojy
* @date 2023/12/10 - 21:01
*/
// @SpringBootApplication 注解标识的类,为Spring Boot应用程序的启动类
@SpringBootApplication
public class MainApplication { public static void main(String[] args) {
/*
* 该方法是启动 Spring Boot 应用程序的关键步骤,
* 它会创建应用程序上下文、创建ioc容器、自动配置及启动应用程序(web项目会启动内置的Tomcat),并处理命令行参数。
* */
SpringApplication.run(MainApplication.class,args);
} }

5、创建控制器

在SpringBoot启动类所在的包以及子包下,IOC和DI的注解会被自动扫描并生效,约定俗成、无需额外的配置指定。

package online.liaojy.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* @author liaojy
* @date 2023/12/10 - 21:22
*/
@RestController
public class HelloController { @RequestMapping("/hello")
public String hello(){
return "hello,springboot2!";
} }

6、测试效果

启动springboot工程

注意:通过控制台的日志可知,默认使用了8080端口,内置了Tomcat9,上下文没有内容(也即是/)

访问对应的控制器方法,成功返回的正确响应内容。

7、案例总结

7.1、父工程

  • 每个 springboot 工程都有一个父工程 spring-boot-starter-parent ;

  • spring-boot-starter-parent 的父工程是 spring-boot-dependencies

  • spring-boot-dependencies 工程是版本仲裁中心,把所有常见的jar的依赖版本都声明好了,而且不存在版本冲突,

    所以 springboot 工程中的依赖不需要写版本。

7.2、starter启动器

  • 虽然 Maven 有依赖传递的功能,但是只能根据 jar 包之间的引用关系来关联依赖,不能根据开发场景来关联相关依赖,

  • 因此 Spring Boot 提供了一种叫做 Starter 的概念,用于关联和管理具体业务场景的相关依赖和配置;

  • Starter 包含了一组预定义的依赖项集合,并提供了一致的依赖项版本管理,确保依赖项之间的兼容性和稳定性;

  • Starter 遵循“约定大于配置”的原则,通过默认的设置来自动配置所需的组件和功能,让开发者更专注于业务逻辑而不是繁琐的配置细节;

  • 除了 Spring Boot 会提供一系列预定义的 Starter 之外,第三方(包括我们自己)也可以自定义 Starter ;

  • 官方提供的 Starter 的命名格式:spring-boot-starter-* ,第三方提供的 Starter 的命名格式:*-spring-boot-starter 。

SpringBoot 官方提供的 Starter 的文档地址:

https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/using.html#using.build-systems.starters

7.3、@SpringBootApplication注解

  • 添加在启动类上的 @SpringBootApplication 注解,实际上是一个组合注解,其作用由具体的子注解来实现;

  • @SpringBootApplication 注解的关键子注解包括:@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration ;

  • @SpringBootConfiguration 子注解本身也是一个组合注解,它包含了 @Configuration 注解,作用是将被标识的类声明为配置类;

  • @EnableAutoConfiguration 子注解的作用是自动加载其他配置类,并会根据依赖项和类路径,自动配置各种常见的Spring配置和功能;

  • @ComponentScan 子注解的作用是扫描所在类的包及其子包中的组件,并加载进Ioc容器中,使它们可被自动注入和使用。

2、SpringBoot2之入门案例的更多相关文章

  1. SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口

    一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容 ...

  2. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)

    SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...

  3. SpringMvc核心流程以及入门案例的搭建

    1.什么是SpringMvc Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 M ...

  4. Struts2第一个入门案例

      一.如何获取Struts2,以及Struts2资源包的目录结构的了解    Struts的官方地址为http://struts.apache.org 在他的主页当中,我们可以通过左侧的Apache ...

  5. MyBatis入门案例、增删改查

    一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...

  6. Hibernate入门案例及增删改查

    一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...

  7. Quartz应用实践入门案例二(基于java工程)

    在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任 ...

  8. Quartz应用实践入门案例一(基于Web环境)

    Quartz是一个完全由java编写的开源作业调度框架,正是因为这个框架整合了许多额外的功能,所以在使用上就显得相当容易.只是需要简单的配置一下就能轻松的使用任务调度了.在Quartz中,真正执行的j ...

  9. MyBatis入门案例 增删改查

    一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...

  10. Hibernate入门案例 增删改

    一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...

随机推荐

  1. 引用数据类型string字符串 类型转换

    String 任何" "之间的值 包括空格 String类型的字面取值 String str1 = "你好" String str2 = "hello ...

  2. web服务器 传统开发和前后端分离开发 服务器相关概念

    web服务器 Web服务器一般指的是网站服务器,是指驻留因特网上某一台或N台计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,目前最主流的三个Web服务器是Apache. Nginx . ...

  3. P1737

    problem \(\text{task 1}\) 要求: 输入:\(a,b\). 输出:\(-2a-2b\). 数据范围:\(|a|,|b| \le 10^9\). 做法: 先把 \(-2\) 提出 ...

  4. 使用极限网关助力 ES 集群无缝升级、迁移上/下云

    在工作中大家可能会遇到以下这些场景: 自建 ES 集群需要平滑迁移到 XX 云: 从 XX 云将 ES 集群迁移到自建机房: ES 集群进行跨版本升级,同时保留回退能力: 这些场景往往都还有个共同的需 ...

  5. 神奇的JavaScript弱等价类型转换

    JavaScript语言特性 - 类型转换 JavaScript这门语言的类型系统从来没有它表面看起来的那样和善,虽然比起Java.C#等一众强类型语言,它的弱类型使用起来似乎是如此便利,但正因为它极 ...

  6. 重学前端 - react 项目第一节:创建react 项目

    重学前端 - react 项目第一节:创建react 项目 简介:之前一直使用的都是 vue 全家桶开发项目,现在在新的项目上开始使用react开发. 现在开始在重新学习一下 react 相关技术. ...

  7. base64图片文件上传OSS,下载OSS图片转换为InputStream,文件转base64,base64转文件工具类

    base64图片文件上传OSS,下载OSS图片转换为InputStream,文件转base64,base64转文件工具类 OSSUtils.java public class OSSUtils { p ...

  8. JS常用的工具方法

    记录一些经常使用的JS通用工具方法,代码来自互联网,佛性更新 空字符串校验 /** * 判断字符串是不是NULL或空串或空格组成 * @param str 被判断的字符串 * @return {boo ...

  9. .Net Core+NPOI快速导入导出Excel

    Excel导入导出在开发中是非常常见的,对Excel操作,NPOI使用的是最常用的,但单单用NPOI,要写得代码还是比较多的,可以借助一个Npoi.Mapper库,操作起来就非常简单了,十来行代码就可 ...

  10. 推荐一款基于业务行为驱动开发(BDD)测试框架:Cucumber!

    大家好,我是狂师. 今天给大家介绍一款行为驱动开发测试框架:Cucumber. 1.介绍 Cucumber是一个行为驱动开发(BDD)工具,它结合了文本描述和自动化测试脚本.它使用一种名为Gherki ...