Spring Boot 学习1-创建Spring Boot应用

如果使用Maven, 确保先安装好Maven再继续。

创建POM文件

在这里有两种方式:

  1. 继承Spring Boot parent的pom。
  2. 不继承。

继承Spring Boot pom

12345678910111213141516171819202122232425262728293031323334353637383940
<?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>	<groupId>com.example</groupId>	<artifactId>myproject</artifactId>	<version>0.0.1-SNAPSHOT</version>	<parent>		<groupId>org.springframework.boot</groupId>		<artifactId>spring-boot-starter-parent</artifactId>		<version>2.0.0.BUILD-SNAPSHOT</version>	</parent>	<!-- Additional lines to be added here... -->	<!-- (保用正式版的时候不需要下面的配置) -->	<repositories>		<repository>			<id>spring-snapshots</id>			<url>http://repo.spring.io/snapshot</url>			<snapshots><enabled>true</enabled></snapshots>		</repository>		<repository>			<id>spring-milestones</id>			<url>http://repo.spring.io/milestone</url>		</repository>	</repositories>	<pluginRepositories>		<pluginRepository>			<id>spring-snapshots</id>			<url>http://repo.spring.io/snapshot</url>		</pluginRepository>		<pluginRepository>			<id>spring-milestones</id>			<url>http://repo.spring.io/milestone</url>		</pluginRepository>	</pluginRepositories></project>

此种方式会约定Spring Boot 依赖的版本,它最终继承自spring-boot-dependencies模块,此模块规定了各种依赖的版本号,我们只需要引入groupId 和artifactId就可以了。而且还引入了一些maven的插件,可以让我们用maven的方式mvn spring-boot:run来启动我们的应用。当然如果你用了强大的IDEA,直接可以像普通的应用程序一样启动。

不继承Spring Boot parent

因为实际开发过程中我们可能会有自己的parent,要开发的功能只是项目中一个模块,这时候就没法使用spring boot parent。这时只需要将spring boot dependencies引入到我们的项目中来就可以了。

123456789101112
<dependencyManagement>		<dependencies>		<dependency>			<!-- Import dependency management from Spring Boot -->			<groupId>org.springframework.boot</groupId>			<artifactId>spring-boot-dependencies</artifactId>			<version>2.0.0.BUILD-SNAPSHOT</version>			<type>pom</type>	        <scope>import</scope>		</dependency>	</dependencies></dependencyManagement>

然后我们还是可以在我们的项目中声明groupdId和artifactId来引入依赖。如果需要使用spring boot 的maven插件来启动,则需要手动引入.

1234567
<plugins>    <plugin>        <!--使用boot的maven插件来方便运行boot应用-->        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>    </plugin></plugins>

添加依赖

上面也提到了,如果你继承了spring boot parent,或者引入了spring boot dependencies模块,那么spring boot 就帮你管理了常用的依赖,你可以在引入的时候省略掉版本号。使用这种方式的好处是,spring boot已经帮你考虑了兼容性的问题。

另外,spring boot 引入了starter的概念。其实就是帮你将相关的依赖整理在一起,你只需要依赖这个starter就可以引入所需要的所有依赖。另外就是starter会帮你做一些自动配置,这个后面会讲到。例如我们要开发web项目,只需要引入spring-boot-starter-web依赖就可以了。

1234567
<dependencies>	<dependency>		<groupId>org.springframework.boot</groupId>		<artifactId>spring-boot-starter-web</artifactId>		<!--版本号已经省略-->	</dependency></dependencies>

我们可以看一下引入了哪些依赖

123456789101112131415161718192021222324252627282930313233343536373839404142
mvn dependency:tree[INFO] life.qzz:springboot.demo1:jar:1.0-SNAPSHOT[INFO] - org.springframework.boot:spring-boot-starter-web:jar:2.0.0.BUILD-SNAPSHOT:compile[INFO]    +- org.springframework.boot:spring-boot-starter:jar:2.0.0.BUILD-SNAPSHOT:compile[INFO]    |  +- org.springframework.boot:spring-boot:jar:2.0.0.BUILD-SNAPSHOT:compile[INFO]    |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.0.0.BUILD-SNAPSHOT:compile[INFO]    |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.0.BUILD-SNAPSHOT:compile[INFO]    |  |  +- ch.qos.logback:logback-classic:jar:1.2.3:compile[INFO]    |  |  |  +- ch.qos.logback:logback-core:jar:1.2.3:compile[INFO]    |  |  |  - org.slf4j:slf4j-api:jar:1.7.25:compile[INFO]    |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.9.1:compile[INFO]    |  |  |  - org.apache.logging.log4j:log4j-api:jar:2.9.1:compile[INFO]    |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile[INFO]    |  |  - org.slf4j:log4j-over-slf4j:jar:1.7.25:compile[INFO]    |  +- javax.annotation:javax.annotation-api:jar:1.3.1:compile[INFO]    |  +- org.springframework:spring-core:jar:5.0.2.BUILD-SNAPSHOT:compile大专栏
上一篇:gdal编译


下一篇:第 3 节 Flink standalocal集群安装以及集群代码提交执行