最近到了新的公司产艾,發(fā)現(xiàn)框架里沒有集成熱啟動(dòng)(文件修改之后項(xiàng)目自動(dòng)rebuild喊递、restart)随闪,就查了一下資料,這里記錄一下骚勘。我這里用到的主要是devtools這個(gè)工具铐伴,集成的方式也很簡(jiǎn)單撮奏。
首先是添加devtools依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional><!--依賴不會(huì)傳遞:如A——>B且B——>C ,C 中配置此項(xiàng)的依賴不會(huì)傳遞到A -->
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
正常來說文件保存之后項(xiàng)目就會(huì)restart,但I(xiàn)DEA不會(huì)自動(dòng)build当宴,所以需要按下ctrl+F9, rebuild 項(xiàng)目
devtools其實(shí)有很多坑畜吊,比如以下代碼:
User user = userMapper.selectById(long id);
我在項(xiàng)目中使用tk-mybatis的Mapper時(shí),Mapper<T> 中的實(shí)體會(huì)使用系統(tǒng)默認(rèn)的類加載器加載户矢,也就是上面代碼中玲献,等號(hào)右邊的user使用了系統(tǒng)的類加載器,而左邊的user使用的是devtools的restart類加載器梯浪。這是會(huì)出現(xiàn) xxx cast to xxx的類型轉(zhuǎn)換異常捌年,因?yàn)樗麄兪褂昧瞬挥玫念惣虞d器。除了類加載器還會(huì)有頁面cache的問題等等挂洛。但也都能在搜索引擎找到答案延窜,只是使用的時(shí)候需要特別注意。