“ 该系列的文章主要参考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