1. 程式人生 > >spring boot 初學者容易遇到的坑和技巧

spring boot 初學者容易遇到的坑和技巧

一、start.spring.io網站生成的原始碼匯入eclipse後沒有jre依賴庫的問題

在專案上右鍵,也沒有buildpath選項,專案檔案位也沒有maven專案特有的藍色M角標

原因:缺少.project和.classpath檔案

解決辦法:轉到 專案根目錄下,用maven build一下專案(執行 mvn -up,或 mvn -b 命令),完成專案的初始化,然後關閉專案,再重新開啟專案,就OK了

二、 用curl -X POST/DELETE/GET...時,遇到 不支援 method 的異常

curl是命令列下除錯web應用非常好用的工具。當然,如果想在圖形介面進行web除錯,可以選擇大名鼎鼎的postman^_^

原因:spring 註解沒有寫對,如:把@PutMapping("/{id}"),寫成了 @PutMapping("{/id}")

注意上面兩個註解中 "/"和"{"符號的位置


	//更新一部電影
	@PutMapping("/{id}")
	public TvSeriesDto updateOne(@PathVariable int id, @RequestBody TvSeriesDto tvSeriesDto) {
		if (id == 101 || id == 102) {
			return createTvWestHero();
		} else
			throw new ResourceNotFoundException();
	}

三、使用Log或Logger時,比較好的做法是先驗證,再使用

即:先用 isTraceEnabled 或 isDebugEnabled、isInfoEnabled、isWarnEnabled、isErrorEnabled等等,檢查 Log級別,再輸出Log資訊,這樣可以提高一點點的執行效率

比如:

public static final Log log = LogFactory.getLog(TvSeriesDto.class);
    
public void doSomething(){

	if(log.isTraceEnabled()) {
		log.trace("追蹤資訊");
	}
//....do something
}

四、專案目錄要有良好的層次

大體主要有兩種分層的方法:

一種是按業務型別分,比如:所有和使用者相關的類(包含Interface、POJO、JavaBean、DAO、DTO、Service等等)全部放到users目錄下,和 財務 相關的類,全部放到 finance 目錄下。

另一種是按類的型別分,比如:所有POJO都放到entity目錄下,所有 持久層都放到 dao目錄下,所有 業務邏輯類 都放到 service目錄下等等

個人比較傾向於:主要用第一種,輔以第二種,即按業務區分劃分目錄,在每一項業務目錄下,再按類的型別劃分目錄。原因:spring boot發展方向是微服務框架,第一種方法可以把各項業務部署到不同的伺服器上,更符合微服務的理念(個人理解,不一定對)

五、一定不要拼音和英文混用,更不要用漢字

對於初學者,特別是英文學得不好的初學者,一定要克服畏難情緒,從一開始就養成用英文的習慣。必要時下載一個即時翻譯軟體比如:谷歌翻譯、百度翻譯等等,等過了開始時的階段後,所謂的程式設計用英語也就那麼多單詞和語法,不過而而.....(開個玩笑)

其實,我認為用英文程式設計的主要原因是從作業系統、編譯器、編輯器,再到IDE、Debug、瀏覽器工具,佔主流的全都是外國人開發的(有國人開發的,但對程式設計師而言,國人開發的工具軟體比例實在有點低),那麼問題來了,外國人開發的軟體,是按照外國人的思維方式和習慣設計的,一些提高效率的功能能起作用的前提是函式、類、方法、屬性都是英文的,最最最最最最主要的,網上幾乎所有有用的程式設計資料都是英文的(僅指有價值的、可以解決問題的資料),再加上軟體的help、docs基本都是英文的,要想成為真正的大牛,從程式設計用的英文開始吧^_^......

結論:為了以後的開發效率,從一開始就要養成用英文的習慣,哪怕用的單詞讓senior不屑一顧也無所謂(比如我在上面提到的一些有問題的、不合慣例的用詞^_^),因為senior也是從菜鳥階段一步一步過來的。