一、实现的方式概述
- 使用Spring Loaded
- 使用spring-boot-devtools
注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟)。
File-Settings-Compiler-Build Project automatically
二、spring-boot-devtools
在pom中直接引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
设置以下两项(第一项如已设置直接设置第二项)
1) “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically” 。
2) 组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running” 。
之后直接正常run即可!
三、spring-loaded
在Plugins中添加依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<!-- spring热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
如果依赖提示not found,先在上面写让maven下载下来,再移到Plugin里面来
命令行窗口启动
找到pom.xml的路径,IDEA的话打开Pom后在标签页鼠标悬停即可看到,或者在pom上右击->file Path
在这个路径下打开cmd窗口(win下可以通过shift快速在对应路径打开),输入启动命令
mvn spring-boot:run
这样就可以在IDE里修改代码实现热加载了!
还有一种复杂的方式是通过启动参数指定jar包的位置,感觉更加复杂,暂不赘述。
四、发布spring-boot程序
1.jar形式
通过maven直接INSTALL,把项目打包并且相关的依赖也打到同一个jar里面(推荐shade插件)。
启动:
java -jar Demo-0.0.1-SNAPSHOT.jar
2.war形式
第一步:右键pom.xml点击Run as - > Maven clean,将原有的jar包或war包清除,然后在pom.xml中packing节点值修改为war,如下面加粗部分:
<groupId>com.example</groupId>
<artifactId>Demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
第二步:在pom.xml中的dependencies节点里添加tomcat的如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
第四步:pom.xml修改保存以后,项目会有红色叉出现,此时只要右键项目名,点击Maven - > Update Project,更新后红色叉叉即可消失。
第五步:打开启动类文件,如下添加橙色部分代码:
package com.wzr;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
第六步:右键pom.xml,点击Run as - > Maven install,然后刷新target就能看见已成功将项目打成war包,将war复制粘贴到Tomcat的webapps文件夹下,启动Tomcat即可。