构建你的代码
Spring Boot不需要任何特定的代码布局来工作,但是,有一些最佳实践可以帮助你更好的工作。
使用"default"包
当类不声明包时,它会被认为是在"default"包.应该避免使用"default"包.对于使用@ComponentScan,@EntityScan或@SpringBootApplication注解的Spring Boot应用,可能会导致特定的问题,因为每个jar中的每个类都会被读取.
Spring Boot建议遵循Java建议的程序包命名约定,并使用反向域名(例如,com.example.project)。
定位主application类
Spring Boot建议你在高于其他类的根包中找到你的主应用程序类。@EnableAutoConfiguration注解通常放在你的主类上,它隐式定义了某个项目的基本"search package"。例如,如果你正在编写jar应用,则@EnableAutoConfiguration注解类的包将用于搜索@Entity项
使用根包也允许使用@ComponentScan注解,而不需要指定basePackage属性。 如果您的主类位于根包中,则还可以使用@SpringBootApplication注解。
这里是一个典型的包布局:
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- web
+- CustomerController.java
Application.java文件将声明main方法以及基本的@Configuration。
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}