Fork me on GitHub

BiuBiu

记录、学习、生活

0%

SpringBoot系列(一)-Web入门篇

SpringBoot可以轻松创建独立的,生产级的基于Spring的应用程序,SpringBoot对周边框架的精简和整合,实现自动装配!这篇主要是SpringBoot入门的HelloWorld!

简单介绍

SpringBoot 是由 Pivotal 团队提供的全新框架 ,它之前业内大多都使用ssm构建项目,需要配置各种xml配置文件,随着微服务的发展,这种繁琐的配置越来越让人头疼!SpringBoot对此做了简化配置,让开发人员快速构建基于Spring的项目

特点

  • 快速创建Spring应用
  • 内嵌Tomcat,Jetty等Servlet容器,最后打包的jar可以直接启动运行
  • 无代码生成,也不需要配置额外的xml
  • 尽可能自动配置Spring容器

环境准备

JDK 1.8
Maven 3.6.3
IDEA

备注:
maven可以设置下阿里云镜像,下载速度会很快

1
2
3
4
5
6
7
<!-- 阿里云镜像 -->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

创建项目

此系列我打算使用一个父级项目springboot-demo,然后下面建立各个子项目的方式来创建项目。

IDAE:file -> new -> project

fJ0QRs.md.png

选择项目名称,项目路径,等等

fJ0lzn.md.jpg

选择版本号,选择Web环境的依赖

fJDsUO.png

项目结构如图,删除没用的文件,因为本项目是父项目,所以src也删了,改一下父pom.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--项目坐标-->
<groupId>com.biubiu</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--SpringBoot父依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--属性设置-->
<properties>
<java.version>1.8</java.version>
</properties>

<dependencies>
<!--这个Web依赖也删掉,在各自的子模块引入-->
<!--
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
-->
</dependencies>
<!--maven打包插件也删掉,在各自的子模块引入-->
<!--
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
-->

</project>

好,继续子项目创建,右键项目,new -> module 这里选择Maven项目就行

fJ6MJU.md.png

fJ6QWF.md.png

fJ6KiT.md.png

创建完成后,再看看项目结构

fYCCkR.md.png

可以看到父级pom.xml下多了module模块,这个表示子模块的意思

这里我们把项目搭建完毕了,我们改下子模块springboot-web-demo的pom.xml如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<artifactId>springboot-demo</artifactId>
<groupId>com.biubiu</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>springboot-web-demo</artifactId>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<!--maven打包插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

编写代码

  1. 项目结构
    fYFEcV.png

注意,application.properties是空的,可以不加

  1. 启动类 WebApplicationo.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    /**
    * <p>
    * WebApplication
    * </p>
    *
    * @author biubiu
    * @since 2021/8/10
    */
    @SpringBootApplication
    public class WebApplication {

    public static void main(String[] args) {
    SpringApplication.run(WebApplication.class, args);
    }

    }
  2. HelloController.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    /**
    * <p>
    * HelloController
    * </p>
    *
    * @author biubiu
    * @since 2021/8/10
    */
    @RestController
    public class HelloController {

    @GetMapping("/hello")
    public String hello() {
    return "hello spring-boot!!!";
    }
    }

  1. 启动项目:日志如下说明成功

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      .   ____          _            __ _ _
    /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
    \\/ ___)| |_)| | | | | || (_| | ) ) ) )
    ' |____| .__|_| |_|_| |_\__, | / / / /
    =========|_|==============|___/=/_/_/_/
    :: Spring Boot :: (v2.5.3)
    ......
    ......
    2021-08-10 15:42:37.586 INFO 9444 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1160 ms
    2021-08-10 15:42:38.037 INFO 9444 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
    2021-08-10 15:42:38.051 INFO 9444 --- [ main] com.biubiu.web.WebApplication : Started WebApplication in 2.3 seconds (JVM running for 3.947)
  2. 浏览器输入 http://localhost:8080/hello测试
    fYFA10.png

注意事项

  • SpringBoot内嵌了Tomcat容器,所以不需要外部Tomcat容器
  • 思考点高深的东西,SpringBoot自动装配原理是啥?
老铁,想请我喝哇哈哈嘛!![笑哭]