Spring Boot入门(一):搭建Spring Boot项目
从本篇博客开始,我们开始进入spring boot的世界,它的出现使spring的开发变得更加简洁,因此一经推出受到众多程序员的喜爱。
作为spring boot系列的第一篇博客,我们先来讲解下如何搭建spring boot项目。
如果你直接就使用的是spring boot,建议你有时间可以学习下spring,这样更能体会到spring boot带来的便利。
spring系列博客地址:。
1. 搭建spring boot项目的2种方式
1.1 方式1:使用官网搭建
首先,在浏览器中,输入 ,会看到如下界面:
从上图可以看出,project默认值是maven project,language默认值是java,spring boot默认版本是2.1.9,因为符合我们的需求,所以这3项我们不做修改。
然后填写项目信息,即project metadata项,如下所示:
上图中的group,可理解为组织,一般为域名反过来,如果域名是zwwhnly.com,这里就填com.zwwhnly。
artifact,可理解为项目名,比如我这里填写的是springboot-action。
接着选择依赖项,比如要添加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的相关技术,可以查看以下博客:
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. 源码及参考
源码地址:,欢迎下载。
汪云飞《java ee开发的颠覆者:spring boot实战》
6. 最后
欢迎扫码关注微信公众号:「申城异乡人」,定期分享java技术干货,让我们一起进步。
上一篇: 你不是领导