14. 组织代码
Spring Boot不要求任何的代码工具就能使用。但是,有一些有帮助的最佳实践。
14.1 使用“default”包
当一个类不在一个package声明时,它会被放在“default package”。使用“default package”通常是不鼓励的,也应该避免。它可以引起Spring Boot一定的问题,使用@ComponentScan,@EntityScan或者@SpringBootApplication annotations注解时,每个jar的每个类会被扫描。
我们推荐你遵循Java推荐的包命名规范(convention),使用一个反转的域名(例如,com.example.project)。
14.2 放置应用主类
我们一般推荐你放置你的应用主类在一个根包里,在其他类之上。@SpringBootApplication注解经常放在你的主类,它暗示为某些条目定义了一个基础的“search package”。例如,如果你正在写一个JPA应用,@SpringBootApplication注解的类的包被用来搜索@Entity条目。使用根package也允许组件扫描应用到你的工程上。
如果你不想使用@SpringBootApplication,@EnableAutoConfiguration和@ComponentScan注解(it imports defines that behaviour),可以用来代替它。
下面展示一个典型的布局:
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);
}
}