問題的提出:
在編寫代碼的時候,你會發現我們只是簡單把打印信息改變了,就需要重新部署,如果是這樣的編碼方式,那么我們估計一天下來就真的是打幾個Hello World就下班了。那么如何解決熱部署的問題呢?那就是springloaded;
在pom.xml文件添加依賴包: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin </artifactId> <dependencies> <!--springloaded hot deploy --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.4.RELEASE</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> </configuration> </execution> </executions> </plugin> </plugins> </build>
運行方法一:使用spring-boot:run
這時會下載一些文件,下載完成后會啟動應用,等啟動成功后測試:
未修改前測試結果:
修改后不用重啟結果:
@RequestMapping("/getDemo") public Demo getDemo(){ Demo demo = new Demo(); demo.setAddress("誰登錄11111看風景"); demo.setAge(12221); demo.setCreateTime(new Date()); return demo; }
測試成功!
運行方法二:(有點麻煩而且有bug,僅做了解)
如果使用的run as – java application的話,那么還需要做一些處理。 把spring-loader-1.2.4.RELEASE.jar下載下來,放到項目的lib目錄中,然后把IDEA的run參數里VM參數設置為: -javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify 然后啟動就可以了,這樣在run as的時候,也能進行熱部署
說明:Springloaded不是最終選擇的熱部署方案,這兩種方式僅做了解;因為:通過使用springloaded進行熱部署,但是有些代碼修改了,並不會進行熱部署。比如新創建一個方法、新屬性等,這些並沒有被部署到服務器;