人們寧願去關心一個蹩腳演員的喫喝拉撒和雞毛蒜皮,而不願瞭解一個普通人波濤洶湧的內心世界...
前言
關於如何搭建SpringBoot工程以及開啓Web功能,
可以查看我的這篇博客:用Spring Initializr快速構建SpringBoot及整合MVC
熱部署
熱部署可以讓你在修改代碼不重啓項目的情況下,直接刷新瀏覽器就自動生效,簡直不要太爽
第一步,在依賴管理文件pom.xml
中導入依賴;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional><!-- 防止將devtools依賴傳遞到其他模塊中 -->
</dependency>
第二步,打開IDEA,左上角"File" -> “Settings”,或者點擊IDEA工具欄的扳手圖標
進入IDEA的設置,在"Build,Execution,Deployment"下找到"Compiler",再找到"Build project automatically",在前面的框框上面打上"√",再點擊"OK"。
最後一步,打開運行時編譯,首先按住快捷鍵 Shift+Ctrl+Alt+/
,點擊"Register"
再選擇"compiler.automake.allow.when.app.running"選項,在後面的方框中打上√,再點擊右下角的"close"即可。
最後再配置一下熱部署的策略,點擊IDEA工具類上方的Application
,再點擊Edit Configurations...
然後找到Running Application Update Policies
下方的On 'Updatae' action
以及On frame deactivation
選項,下拉框全部選擇爲Update classes and resources
,再點擊右下角的Apply
-> Cancel
或者直接點擊OK
即可:
到此,大功告成!
測試一下
下面來讓我們來測試一下熱部署,順便複習一下如何把一個Bean放入Spring容器中
先新建一個實體類:
package com.guqueyue.entity;
/**
* @author guqueyue
* @Date 2020/4/14
**/
//lombok插件的註解
@Data // 若未使用lombok插件,請自行生成getter、setter以及toString方法
@AllArgsConstructor // 若未使用lombok插件,請自行生成有參構造方法
@NoArgsConstructor // 若未使用lombok插件,請自行生成無參構造方法
@Accessors(chain = true) // 開啓鏈式編程
public class Person {
private String name;
private Integer age;
}
再新建一個配置類
package com.guqueyue.config;
/**
* @author guqueyue
* @Date 2020/4/15
**/
@Configuration //表示當前類是配置相關的
public class WebConfig {
@Bean // 把方法的返回值放到Spring容器中,id就是方法名稱
@Scope(scopeName = "prototype") // 設置單例或者原生
public Person person() {
// 創建一個對象
Person person = new Person()
.setName("小白")
.setAge(12);
return person;
}
}
然後創建Web層,如:
package com.guqueyue.controller;
/**
* @author guqueyue
* @Date 2020/4/15
**/
@RestController
public class TestController {
@Autowired // 注入person
private Person person;
@RequestMapping("/test")
public Person getPerson() {
return person;
}
}
啓動程序,打開瀏覽器,輸入"http://localhost:8080/test",顯示:
說明Bean注入成功,再在person()中修改一下person
:
/**
* @author guqueyue
* @Date 2020/4/15
**/
@Configuration //表示當前類是配置相關的
public class WebConfig {
@Bean // 把方法的返回值放到Spring容器中,id就是方法名稱
@Scope(scopeName = "prototype") // 設置單例或者原生
public Person person() {
// 創建一個對象
Person person = new Person()
.setName("小白")
.setAge(12);
// 修改這個對象
person.setName("大白(●—●)").setAge(19);
return person;
}
}
無須重新啓動程序,直接刷新瀏覽器頁面,顯示:
則說明熱部署成功!