使用 Spring Initializr 构建好一个新项目之后,就类似下图的项目结构:
整个项目结构遵循 Maven 或 Gradle 项目的布局,即
| 路径 | 说明 |
|---|---|
| src/main/java | 程序代码。 |
| src/main/resources | 资源。 |
| src/test/java | 测试代码。 |
| src/test/resources | 测试资源。 |
除此之外,还有以下文件:
| 文件 | 说明 |
|---|---|
| build.gradle | Gradle 构建说明文件。 |
| application.properties | 项目和 Spring Boot 配置文件。 |
| xxxApplication.java | 项目启动引导类(bootstrap class),也是 Spring 主配置类。 |
| xxxApplicationTests.java | 测试类骨架。 |
1 启动类(xxxApplication.java)
xxxApplication.java 有两个功能:配置和启动引导。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MoviesApplication {
public static void main(String[] args) {
SpringApplication.run(MoviesApplication.class, args);
}
}
注解 @SpringBootApplication 开启了 Spring 组件扫描和 Spring Boot 的自动配置功能 。 并将以下三个注解的功能整合在了一起:
| 注解 | 说明 |
|---|---|
| @Configuration | 标明该类是 Spring 基于 Java 的配置类 。 |
| @ComponentScan | 启用组件扫描,这样那些 POJO 才能被自动发现并注册为 Spring 应用上下文里中的Bean。 |
| @EnableAutoConfiguration | 开启 Spring Boot 自动配置 。 |
这里的 main() 方法会把当前项目作为一个可执行 JAR 文件来运行 。 这里向 SpringApplication.run() 传递了xxxApplication 类与命令行参数,然后启动项目 。
如果需要修改 Spring Boot 自动配置,那么可以修改此类。Spring 的其它配置,建议写在标注了@Configuration 的配置类中。
2 测试类(xxxApplicationTests.java)
Spring Initializr 还生成了一个测试类的骨架 xxxApplicationTests.java,我们可以基于它来为项目编写测试。
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class MoviesApplicationTests {
@Test
public void contextLoads() {
}
}
该类自带 contextLoads() ,虽然是空方法,但只要测试通过,就说明 ***Application.java 配置正确:
3 配置文件(application.properties)
此为项目的配置文件。我们可以在此修改 Spring Boot 的默认配置项,比如修改嵌入式 Tomcat 的监听端口(默认为 8080):
# 嵌入式 Tomcat 的监听端口
server.port=8088
再次启动项目,就可以看到 Tomcat 的监听端口已经改为我们所配置的 8088 端口啦: