Spring Boot入门(一):搭建Spring Boot项目

从本篇博客开始,咱们开始进入Spring Boot的世界,它的出现使Spring的开发变得更加简洁,所以一经推出受到众多程序员的喜好。php

做为Spring Boot系列的第一篇博客,咱们先来说解下如何搭建Spring Boot项目。html

若是你直接就使用的是Spring Boot,建议你有时间能够学习下Spring,这样更能体会到Spring Boot带来的便利。java

Spring系列博客地址:www.cnblogs.com/zwwhnly/cat…git

1. 搭建Spring Boot项目的2种方式

1.1 方式1:使用官网搭建

首先,在浏览器中,输入 start.spring.io/,会看到以下界面:程序员

从上图能够看出,Project默认值是Maven Project,Language默认值是Java,Spring Boot默认版本是2.1.9,由于符合咱们的需求,因此这3项咱们不作修改。github

而后填写项目信息,即Project Metadata项,以下所示:web

上图中的Group,可理解为组织,通常为域名反过来,若是域名是zwwhnly.com,这里就填com.zwwhnly。spring

Artifact,可理解为项目名,好比我这里填写的是springboot-action。apache

接着选择依赖项,好比要添加Web依赖项,这里能够按关键字搜索Web依赖项,以下所示:浏览器

也能够按分类找到Web依赖项,以下所示:

无论以哪一种方式添加,最终的结果都是下面这样的:

最后,点击”Generate“按钮生成项目代码:

解压后的代码目录以下图所示:

从图中能够看出,此处生成的其实就是一个简单的基于Maven的项目,你可使用本身喜欢的开发工具打开该项目,好比IntelliJ IDEA。

1.2 方式2:使用IDEA搭建

首先,打开开发工具IntelliJ IDEA,依次点击菜单File--New--Project打开新建项目对话框,先选中左侧的“Spring Initializr”,而后选择项目要使用的JDK版本,如1.8,点击"Next"按钮:

按照下图中的提示填写好项目信息、打包方式、Java版本等信息,点击“Next"按钮:

选择项目要使用的依赖项(如Spring Web)以及Spring Boot的版本(如2.1.9),点击”Next“按钮:

确认好项目名称和项目要保存的路径,点击“Finish"按钮,若是保存的路径不存在,会提示是否自动建立该目录,点击“OK”便可:

建立好的项目结构图以下所示:

Maven依赖树以下所示:

2. pom.xml讲解

默认生成的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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zwwhnly</groupId>
    <artifactId>springboot-action</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-action</name>
    <description>Spring Boot Action Code</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
复制代码

关于pom.xml的整个讲解,能够参考我以前写的博客:Spring入门(四):使用Maven管理Spring项目 ,这里咱们只讲解下该文件和以前不一样的地方。

第1个值得注意的地方是文件中的parent标签:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
复制代码

该标签用于添加Spring Boot的父级依赖,其中spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它以后,经常使用的包依赖能够省去version标签。

举个具体的例子,咱们往pom.xml中添加以下依赖:

<dependency>
   <groupId>com.rabbitmq</groupId>
   <artifactId>amqp-client</artifactId>
</dependency>
复制代码

和默认的2个依赖同样,咱们并未指定该依赖的version版本,可是在Maven的依赖树里,却能看到这3个依赖使用的版本,以下所示:

这就是parent标签中引用spring-boot-starter-parent的做用,咱们能够经过如下文件来查看它都提供了哪些依赖的默认版本信息:

在该文件中,咱们能够找到spring-boot-starter-web、spring-boot-starter-test、amqp-client指定的版本信息:

<properties>
    <rabbit-amqp-client.version>5.4.3</rabbit-amqp-client.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>${rabbit-amqp-client.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.1.9.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>2.1.9.RELEASE</version>
    </dependency>
</dependencies>
复制代码

能够发现,指定的版本正是Maven依赖树上看到的版本信息。

不过能够经过指定version版原本覆盖默认的版本,好比咱们将amqp-client的依赖信息修改成:

<dependency>
   <groupId>com.rabbitmq</groupId>
   <artifactId>amqp-client</artifactId>
   <version>5.7.0</version>
</dependency>
复制代码

此时在Maven依赖树看到的amqp-client的版本就变为了5.7.0:

第2个值得注意的地方是,文件中添加了Spring Boot的编译插件:

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>
复制代码

这里咱们也没有指定version,因此使用的是默认的版本2.1.9.RELEASE(和上面使用amqp-client的原理同样):

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.1.9.RELEASE</version>
</plugin>
复制代码

3. 简单演示

找到启动类SpringbootActionApplication(名称通常为ArtifactId+Application),看到默认代码以下:

package com.zwwhnly.springbootaction;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootActionApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootActionApplication.class, args);
    }
}
复制代码

为方便演示,咱们暂时在启动类中新增一个Api接口:

package com.zwwhnly.springbootaction;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class SpringbootActionApplication {

    @RequestMapping("/")
    public String index() {
        return "Hello Spring Boot";
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringbootActionApplication.class, args);
    }
}
复制代码

在启动类中右键,而后选择运行项目,看到以下信息:

在浏览器中访问http://localhost:8080/,会看到以下信息:

@RestController注解和@RequestMapping注解实际上是Spring MVC相关的注解,并非Spring Boot特有的,关于Spring MVC的相关技术,能够查看如下博客:

  1. Spring入门(十二):Spring MVC使用讲解
  2. Spring入门(十三):Spring MVC经常使用注解讲解
  3. Spring入门(十四):Spring MVC控制器的2种测试方法

4. 关闭Banner

其实刚刚启动项目时咱们已经看到了Spring Boot的Banner,那么你不由要问什么是Spring Boot的Banner呢?

其实就是下图中红色标记的地方:

也许有人会以为每次启动都显示这些信息并无实际意义,那么咱们如何关闭它呢?

4.1 经过代码关闭

原代码:

public static void main(String[] args) {
    SpringApplication.run(SpringbootActionApplication.class, args);
}
复制代码

修改后:

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

    SpringApplication springApplication = new SpringApplication(SpringbootActionApplication.class);
    springApplication.setBannerMode(Banner.Mode.OFF);
    springApplication.run(args);
}
复制代码

4.2 经过配置文件关闭

默认状况下,新建的Spring Boot项目都有个空的application.properties配置文件,能够添加以下配置:

spring.main.banner-mode=off
复制代码

从新启动项目,效果以下图所示:

5. 源码及参考

源码地址:github.com/zwwhnly/spr…,欢迎下载。

汪云飞《Java EE开发的颠覆者:Spring Boot实战》

使用idea建立第一个springboot项目

Spring Boot-关闭Banner

关闭spring boot的banner

SpringBoot yml 配置

最后,欢迎关注个人微信公众号:「申城异乡人」,全部博客会同步更新。

相关文章
相关标签/搜索