使用idea进行热部署

    对于普通的java web项目,使用idea配置tomcat热部署比较简单,网上有很多教程,这里就不在赘述。

    对于spring-boot项目,使用idea配置热部署一般有两种方法。1)spring-boot-devtools 2)springloaded

    一、使用spring-boot-devtools配置spring boot的热加载

    1)在pom.xml中加入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

     2)加上启用热加载的配置

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!-- 启动修改之后实时生效  -->
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
    <defaultGoal>compile</defaultGoal>
</build>       

    注:这种方式只是热加载,修改代码后服务器自动启动,不是真正的热部署。

    二、使用springloaded来配置项目的热部署

    1)在pom.xml添加依赖

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>springloaded</artifactId>
                    <version>1.2.6.RELEASE</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build> 

    2)这种配置不能直接运行 main 方法了,需要使用mvn spring-boot:run 启动。idea配置maven命令启动spring boot项目,如下图。

使用idea进行热部署

3)这种启动方式,控制台输出会出现中文乱码,可在pom.xml添加如下配置。

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>

                    <!-- spring-boot:run 中文乱码解决 -->
                    <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
                </configuration>
            </plugin>
        </plugins>
    </build>