1、首先通过Idea创建一个Maven项目,参考IDEA Maven父子项目操作(不是微服务架构,所以参考子项目的创建即可).
2、修改pom.xml 导入spring boot2相关的依赖
(1)、引入spring boot2框架
代码语言:javascript复制<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
https://docs.spring.io/spring-boot/docs/2.7.12/reference/html/getting-started.html#getting-started.first-application.pom
(2)、引入web开发场景启动器 spring-boot-starter-web
注:spring boot提供了若干场景启动器,命名规则spring-boot-starter-*,类似abp的组合模块,方便快速开发
代码语言:javascript复制 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
这里通过idea点击进入该场景启动器,可以看到如下依赖
代码语言:javascript复制 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
引入了web开发相关的依赖如tomcat等
https://docs.spring.io/spring-boot/docs/2.7.12/reference/html/getting-started.html#getting-started.first-application.dependencies
3、依赖管理
根据2中通过xml引入的spring-boot父项目,如下xml
代码语言:javascript复制<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
通过idea点击父项目信息
可以看到父项目依然有父项目,继续点击查看.
可以看到properties节点下面定义了很多Maven自定义属性,这个属性就是控制spring-boot引入的工具包的版本,如下:
这其实就是maven父子项目依赖管理的方式,参考Maven 父子项目
4、子项目修改Spring boot项目引用的默认组件依赖版本.
因为通过pom引入spring boot2,spring boot2会引入框架默认依赖的所有组件,方便开发,也是约定大于配置的一种体现,但是有些特殊业务需求,某个模块需要升级某一个组件的版本,这里拿junit组件举例,spring boot2默认引用
如果项目中需要junit,其pom.xml如下:
那么项目默认会使用spring boot2中的junit版本
参考父子项目,如果此时需要在项目中使用自定义的junit版本不使用spring boot2给定的版本,可以使用如下两种方式:
(1)、修改pom.xml如下:
代码语言:javascript复制 <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
(2)、改写pom.xml的自定义属性
代码语言:javascript复制<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.11</junit.version>
</properties>
5、编写Application启动类,类似abp的启动类
代码语言:javascript复制package com.company.springboo2learn;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@SpringBootApplication 注解代表这是一个Spring boot应用
6、编写Restful 控制器和netcore mvc类似
代码语言:javascript复制@RestController
public class HelloController
{
@RequestMapping("/hello")
public String home() {
return "hello spring boot2!";
}
}
7、启动应用
找到3中的启动类
运行即可.
运行访问均成功.
8、创建可执行的jar包并部署 类似netcore的单文件部署
Spring boot提供了fat jar的概念,打包了tomcat和相关运行时方便快速发布,修改pom.xml新增如下节点
代码语言:javascript复制 <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
https://docs.spring.io/spring-boot/docs/2.7.12/reference/html/getting-started.html#getting-started.first-application.executable-jar
操作idea或者命令行执行mvn clean packeage执行打包操作
打包成功会在target目录(类似netcore项目的bin)生成一个jar包,cmd定位到包目录,执行如下代码:
部署访问成功.