最近在看spring boot 作為一個(gè)初學(xué)者,一開始總是懵逼的,參考網(wǎng)上的demo,也可以自己去官網(wǎng)上下個(gè)屬于自己的demo,看這里傳遞門。
好了,代碼你也有了(如果這個(gè)你還不能自己搞定,我就不信了)。spring boot默認(rèn)的是給你打包成可運(yùn)行的jar包,你可以直接使用命令 java ?-jar ?xxxx.jar 就可以啟動(dòng)項(xiàng)目了,如果是源碼就更簡(jiǎn)單了,直接運(yùn)行Application.java 這個(gè)類就可以了啟動(dòng)了。
上面是在eclipse 和 默認(rèn)打包jar的啟動(dòng)方式,由于之前習(xí)慣了eclipse + tomcat開發(fā)模式,所以項(xiàng)目最終都會(huì)打包成war包,這個(gè)就需要自己修改點(diǎn)東西了,首先找到你的pom.xml文件,修改打包類型
將圖1中的<packaging>jar</packaging> 修改為<packaging>war</packaging>,然后添加tomcat的pom
在這里將scope屬性設(shè)置為provided,這樣在最終形成的WAR中不會(huì)包含這個(gè)JAR包,因?yàn)門omcat或Jetty等服務(wù)器在運(yùn)行時(shí)將 會(huì)提供相關(guān)的API類。
你以為這樣就結(jié)束了嘛?當(dāng)然不是,我們想要訪問(wèn)這個(gè)在Servlet容器中部署的WAR的話,就不能依賴于Application的main函數(shù)了,而是要以類似于web.xml文件配置的方式來(lái)啟動(dòng)Spring應(yīng)用上下文,此時(shí)我們需要聲明這樣一個(gè)類:
這個(gè)類的作用與在web.xml中配置負(fù)責(zé)初始化Spring應(yīng)用上下文的監(jiān)聽器作用類似,只不過(guò)在這里不需要編寫額外的XML文件了。而這個(gè)類的位置和要Application.java在同一個(gè)目錄下,這樣你變可以在tomcat下運(yùn)行war包,開啟訪問(wèn)模式了:http://localhost:8080/SpringBoot/hello