用spring boot完成一個小項目的心酸歷程

整個項目是用spring boot+mybatis+jsp構成的

首先來吐槽一下整個項目中的坑點

1.maven的包管理和依賴管理

2.spring boot真的拋棄jsp了嗎?

3.打包方式用jar還是war?

4.tomcat是用內置還是外置?

5.本地開發環境和發佈到生產環境有什麼不同?

現在我就帶着問題一個一個的回答

1.maven的包管理和依賴管理

在這個項目,經常出現某個類找不到的情況,但是在引用的那個jar包裏面確實存在,那就很可能是包依賴的版本有問題,比如我們引入了一個包A,版本爲1.1,然後有另一個包B依賴了包A,但是依賴的版本的爲1.0,這時有可能我們在工程中用到的就是包A的1.0版本,首先我們用mvn dependency:tree來找出所有包的依賴關係,看是哪個類依賴了某個類的低版本,然後在pom裏面那個類下把依賴的類給排除掉,例如

<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-cas</artifactId>
			<version>${shiro.version}</version>
			<exclusions>
				<exclusion>
					<groupId>javax.servlet</groupId>
					<artifactId>servlet-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

如果從pom依賴關係裏面找不到,那就需要查一下本地有沒有直接引用不通過maven管理的第三方包

2.spring boot真的拋棄jsp了嗎?

不得不說,spring boot真的要慢慢拋棄jsp了,支持的模版是像FreeMarker,Groovy,Thymeleaf,Mustache這些(一上來就三四個,咱程序猿可是真心苦逼啊),目前還是可以用,往後新的項目就慢慢轉吧。

3.打包方式用jar還是war?

一開始我是想用jar來打包,網上也有成功的案例springboot中集成jsp,打成jar包可用jsp,但是我這個項目用jar打出來的包可以啓動,但是頁面請求死活出不來,那個成功案例裏提到需要用spring-boot-maven-plugin的1.4.2版本來打包,高於1.4.2版本打出來的包有問題,很不幸,我的項目如果改用1.4.2版本的話其他地方各種報錯,改完一個又來一個,最後無奈放棄這種方案。最後是打成war包可以運行

4.tomcat是用內置還是外置?

網上很多都是推薦外置,但是我覺得用內置方式也沒有什麼不好,線上配合supervisor工具發佈很方便,supervisor這個工具很好用,可以自動管理(開啓,停止,重啓)程序的運行

5.本地開發環境和發佈到生產環境有什麼不同?

本地intellij idea配置的環境運行很少問題,倒是發佈到線上的時候各種問題一大堆。生產環境就是像我第4點提到的使用supervisor把程序後臺運行,執行通過 java -jar xxx.war

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章