Spring Boot中文手冊(4):編寫你的代碼

 該系列的文章主要參考Spring Boot 2.1.2.RELEASE的官方文檔來進行翻譯,逐步將官方文檔翻譯過來,方便大家共同學習和討論,但是畢竟能力有限,如有問題,感謝大家留言指正。

Spring Boot並不要求使用特定的代碼結構,不過這裏有一些最佳實踐,會對你的開發過程有所幫助。

1 不建議使用默認的Package

當一個類不包含 package 聲明的話,它被認爲存在於默認的包(「default package」)中,通常「default package」是不建議使用,並且最好是避免使用的。因爲對於使用@ComponentScan@EntityScan, 和 @SpringBootApplication這些註解的Spring Boot應用來說,每個包中的每個類都會被讀取,如果使用了「default package」,可能會引起某些比較特殊的問題。

我們建議你遵循Java推薦的包命名規範,使用一個反轉的域名(例如com.example.project)。

2 定位Main應用類

我們通常建議你將你的main應用類放在其他類之上的根包中。我們經常使用的 @SpringBootApplication 註解通常被註解在main類上,並且還位一些其他的項目隱式地定義了一個基礎「search package」 。比如,當你要編寫一個JPA應用時,被 @SpringBootApplication 註解的類所處的包目錄通常被用來搜索 @Entity 項,使用根包目錄可以讓你的組件只掃描你自己的工程。

如果你並不想使用@SpringBootApplication這個註解,使用 @EnableAutoConfiguration and @ComponentScan 這兩個註解也是可以的。

下面是一個典型的工程目錄結構:

Application.java 文件中會聲明 main 方法,並且會在類上添加註解 @SpringBootApplication,如下面的代碼所示:

package com.example.myapplication;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

END