剛開始學習SpringBoot,記錄一下舊項目整合到SpringBoot時遇到的問題(後續踩的坑也會持續加入)java
PS:經過查看他人博客本身東拼西湊出來的,不必定徹底正確,請謹慎對待web
1:打包爲jar或war後發現jsp文件沒法訪問或404等:spring
可能緣由1:controller控制類不在啓動類所在的目錄下的或子目錄中apache
可能緣由2:訪問網址直接使用ip:端口號/url就行,不須要加項目名!!!api
可能緣由3:資源文件不在打包的範圍內,須要在build標籤內進行配置。具體配置在整合過程當中有說明瀏覽器
整合過程:tomcat
舊項目的頁面使用jsp完成,可是SpringBoot對於jsp的支持較差,須要額外添加依賴。mvc
1:登陸https://start.spring.io下載模板,根據需求添加所需的依賴。我的搭建demo使用的是jdk1.8,maven版本是3.5.4,IDE爲MyEclipse2017C1.app
2:MyEclipse下導入demo,選擇Existing Maven Projectswebapp
導入完畢後的目錄結構如圖所示():
3:將project轉換爲WebProject:項目上右鍵並選擇properties並勾選爲Dynamic Web Module,點擊箭頭3所指的地方進行根目錄的配置。
設置根目錄名爲src/main/webapp,記得勾選自動生成web.xml。
4:pom.xml中添加對jsp和tomcat的依賴,還須要在build標籤內添加對資源文件的編譯配置。
添加依賴:
1 <dependency> 2 <groupId>org.apache.tomcat.embed</groupId> 3 <artifactId>tomcat-embed-jasper</artifactId> 4 <scope>provided</scope> 5 </dependency> 6 <dependency> 7 <groupId>javax.servlet</groupId> 8 <artifactId>javax.servlet-api</artifactId> 9 <scope>provided</scope> 10 </dependency> 11 <dependency> 12 <groupId>org.springframework.boot</groupId> 13 <artifactId>spring-boot-starter-tomcat</artifactId> 14 <scope>provided</scope> 15 </dependency>
自定義資源文件的編譯位置,附上完整的build標籤內的內容:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- jsp打包必須限定此版本號 --> <version>1.4.2.RELEASE</version> </plugin> </plugins> <!-- 自定義資源文件的打包方式及編譯位置 --> <resources> <!-- 打包時將jsp文件拷貝到META-INF目錄下--> <resource> <!-- 指定resources插件處理哪一個目錄下的資源文件 --> <directory>src/main/webapp</directory> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <!-- 資源文件須要排除java文件 --> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> </build>
記得右鍵——>Maven——>UpdateProject.
此時若是src/main/webapp不是sourcefolder能夠右鍵選擇該文件夾——>BuildPath——》Use as sourcefolder
5:添加Controller,在application.xml中添加springmvc的視圖解析器的先後綴
@Controller public class HelloController { @RequestMapping("/hello") public String Hello(){ return "Hello"; } }
此時的目錄結構:
經過maven的clean install命令先清除後安裝。控制檯提示build success 。
打包方式能夠在pom.xml中的packaging標籤中設置(jar或者war等)。隨後能夠在工做空間該項目下的target目錄找到打包好的文件,在maven的本地倉庫也能夠找到。
cmd進入jar包所在目錄以後,java -jar demo.jar便可完成啓動。
瀏覽器訪問便可:不要加項目名
附上測試可用的demo:
連接: https://pan.baidu.com/s/1nRSJ_iXekjoA_VbvGg90kg 密碼: 3irb
最後說一句:相比於傳統的SSH或者SSM整合之類的配置地獄,SpringBoot仍是挺爽的。