Spring Boot不須要任何特定的代碼佈局來工做,然而有一些最佳實踐能夠提供幫助。java
當一個類不包含package
聲明時,它被認爲是在「default package」中,使用「default package」一般是不鼓勵的,應該避免使用,它可能會致使使用@ComponentScan
、@EntityScan
或@SpringBootApplication
註解的Spring Boot應用程序的特殊問題,由於每一個jar的每一個類都被讀取。spring
咱們建議你遵循Java推薦的包命名約定和使用反向域名(例如,
com.example.project
)。
咱們一般建議你在其餘類之上的根包中定位主應用程序類,@SpringBootApplication
註解一般放在主類上,它隱式地爲某些項定義了一個基本的「搜索包」。例如,若是你正在編寫一個JPA應用程序,則使用@SpringBootApplication
註解類的包來搜索@Entity
項,使用根包也容許組件掃描只應用於你的項目。segmentfault
若是你不想使用@SpringBootApplication
,那麼@EnableAutoConfiguration
和@ComponentScan
註解將定義該行爲,所以你也能夠使用它。
下面的清單展現了一個典型的佈局:app
com +- example +- myapplication +- Application.java | +- customer | +- Customer.java | +- CustomerController.java | +- CustomerService.java | +- CustomerRepository.java | +- order +- Order.java +- OrderController.java +- OrderService.java +- OrderRepository.java
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); } }