Spring boot2 项目相关

1、首先通过Idea创建一个Maven项目,参考IDEA Maven父子项目操作(不是微服务架构,所以参考子项目的创建即可).

 

2、修改pom.xml 导入spring boot2相关的依赖

(1)、引入spring boot2框架 

<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的组合模块,方便快速开发

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

这里通过idea点击进入该场景启动器,可以看到如下依赖

  <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

<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如下:

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>

 

(2)、改写pom.xml的自定义属性

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit.version>4.11</junit.version>
  </properties>

 

5、编写Application启动类,类似abp的启动类

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类似

@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新增如下节点

  <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定位到包目录,执行如下代码:

 部署访问成功.

posted @ 2023-06-06 12:50  郑小超  阅读(7)  评论(0编辑  收藏  举报