在使用Idea開發(fā)Spring的時(shí)候,Idea自帶了很多Spring的插件,開發(fā)起來挺方便的,比如Spring AOP的導(dǎo)航,Spring MVC的控制器與視圖映射,自動(dòng)補(bǔ)全視圖等等。
在切換為Spring Boot之后,Spring Boot的項(xiàng)目結(jié)構(gòu)和Spring略有不同,像視圖的自動(dòng)補(bǔ)全就沒法繼續(xù)用了。靜態(tài)文件的引入也關(guān)聯(lián)的不好。
問題與方案
靜態(tài)文件的引入問題
在引入靜態(tài)文件的時(shí)候,必須要去掉前面的/static/前綴才行,但是這樣文件無法導(dǎo)航過去,每次打開這個(gè)文件都要多花幾個(gè)步驟。
工欲善其事必先利其器,不能再這樣每次都要點(diǎn)好幾次才能打開文件了,嘗試了幾種方法,最終可以讓文件導(dǎo)航過去了。
方案
1、新建WebConfg的類文件,繼承WebMvcConfigurerAdapter
2、內(nèi)容如下
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
}
3、換成可以導(dǎo)航的寫法,打開頁面也不會(huì)出錯(cuò)。
注意:如果沒有在Webconfig中添加靜態(tài)資源的映射處理方法,頁面中引入的樣式前加了/static/前綴的話。前端頁面會(huì)404找不到一些css和js文件。
控制器與視圖的導(dǎo)航
1、返回視圖文件的時(shí)候,找不到文件的位置。
2、這樣每次打開控制器返回的視圖都要點(diǎn)開文件夾,或者搜文件,挺麻煩的。
3、研究了一下Spring Boot的Thymeleaf的配置,我們可以自定義視圖文件的前綴還有后綴,以及視圖的匹配樣式。那么
spring.thymeleaf.prefix=classpath:/
spring.thymeleaf.suffix=
spring.thymeleaf.view-names=*.html,*.xhtml
4、在返回視圖文件的時(shí)候
return "templates/admin/index.html";
直接按住ctrl或Command,點(diǎn)擊文件即可關(guān)聯(lián)到對(duì)應(yīng)的文件位置
視圖文件解析錯(cuò)誤
1、視圖文件有時(shí)候會(huì)解析錯(cuò)誤,因?yàn)榻馕鲆晥D采用了嚴(yán)格模式。改一下thymeleaf的模式
Spring.thymeleaf.mode=LEAGALHTML5
2、然后添加如下maven依賴關(guān)系
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
總結(jié)
開發(fā)過程摸索的一些方法,希望對(duì)看文章的人有幫助。