目录
Ⅰ、Idea 开发环境构建
确保 java 环境已经配好,可以用 java --version、java、javac 等命令测试
Idea 官网下载 IntelliJ IDEA Ultimate(学生认证)
本文环境:
- Windows 10 Version 1903
- java 11.0.2 2019-01-15 LTS
- Idea 2019.3.3
1-1. Idea 安装
只需要勾选添加快捷方式,不需要勾选 右键用 Idea打开文件夹、关联类型文件用 Idea打开、将 Idea添加进 PATH。
之后暂不需要安装任何插件,一路 next,并用学生账号激活。
1-2. 创建 HelloWorld 项目
-
解决 Resolving Maven Dependencies 慢的问题
将 Maven 仓库设置成阿里云镜像:
由于使用的是 Idea 自带的 maven,需要修改 idea 安装路径下 maven 的 settings.xml 文件。
文件位置:
IntelliJ IDEA 2019.3.3\plugins\maven\lib\maven3\conf\settings.xml
在 mirrors 标签之间添加代码:<!-- 阿里云仓库 --> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
添加完成后如图:
-
新建项目,选择Spring Initializr,其他默认。
-
默认
-
选择下面两个依赖项(依赖项根据需求选择)。Web 是 spring-boot-starter-web 依赖项,该依赖是 Spring MVC 用 Tomcat 作为默认容器快速建立 Web 的一个启动项。使用 Actuator 可以进行健康监控。
-
填写项目名称并选择存储路径
创建好项目之后右下角会弹出一个 maven 提示是否开启自动导入的选项卡,选择 Enabled 即可。 -
解决 Resolving Maven Dependencies 慢的问题
file -> settings 选项卡下修改 maven importing 的 jvm 参数,默认为 700 多, 直接修改成-Xms1024m -Xmx2048m
之后就是耐心等待,本机用了 6 min。
1-3. 添加代码运行 HelloWorld
- 添加代码后如图:
- 运行成功输出(run 时)
可以看出在 8080 端口处打开了一个 tomcat,下面打开一个终端验证,结果如下:
- 可能因为 8080 端口被占用而运行失败,此时需要将占用该端口的进程关掉
打开 win10 命令行窗口,输入netstat -ano | findstr 8080
查看 8080 端口的进程
打开任务管理器,找到该进程,如果显然不重要则可以直接结束该进程
再次运行程序,原来端口被占用无输出 404 的结果(下图)便被解决
Ⅱ、HelloWorld 项目概览
1. pom 文件中 spring-boot-maven-plugin 的作用
项目的 pom 文件自动添加了 spring-boot-maven-plugin 插件,在添加了该插件之后,当运行mvn package
进行打包时,会打包成一个可以直接运行的 JAR 文件,使用java -jar
命令就可以直接运行。
跳过测试直接打包:mvn clean package -Dmaven.test.skip
一开始在 terminal 中无法使用 mvn 命令,需要将 mvn 添加到环境变量中,在用户变量 PATH 中添加:Idea 安装目录\plugins\maven\lib\maven3\bin
使用mvn clean package -Dmaven.test.skip
打包,生成的 jar 包在 target 目录下
将 Idea 中原来运行着的程序中止后,在 terminal 输入java -jar demo-0.0.1-SNAPSHOT.jar
即可运行,效果和之前的一样。
2. 不使用 spring-boot-starter-parent 的做法
在原有 pom 文件基础上做如下修改:
<?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.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<!-- 在这里添加 dependencyManagement 标签,修改 parent -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 这里做修改 -->
<version>2.2.4.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
修改完成后再次运行即可,效果和之前一样。