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); } }