# 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可以设置下阿里云镜像,下载速度会很快

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

# 创建项目

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

IDAE:file -> new -> project

fJ0QRs.md.png

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

fJ0lzn.md.jpg

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

fJDsUO.png

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

<?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>
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

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

fJ6MJU.md.png

fJ6QWF.md.png

fJ6KiT.md.png

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

fYCCkR.md.png

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

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

<?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
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

# 编写代码

  1. 项目结构 fYFEcV.png

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

  1. 启动类 WebApplicationo.java
/**
 * <p>
 * WebApplication
 * </p>
 *
 * @author biubiu
 * @since 2021/8/10
 */
@SpringBootApplication
public class WebApplication {

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  1. 启动项目:日志如下说明成功
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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)
1
2
3
4
5
6
7
8
9
10
11
12
  1. 浏览器输入 http://localhost:8080/hello测试 fYFA10.png

# 注意事项

  • SpringBoot内嵌了Tomcat容器,所以不需要外部Tomcat容器
  • 思考点高深的东西,SpringBoot自动装配原理是啥?

# 源代码

本文对应代码 (opens new window)