1.3 Spring Boot文件目录介绍
创建Spring Boot项目后,会产生一个工程目录,该工程目录存放了工程项目的各种文件,对于Spring Boot开发人员来说,了解该工程目录非常必要。
1.3.1 工程目录
Spring Boot的工程目录,如图1-13所示。
图1-13 Spring Boot工程目录
说明如下:
-
/src/main/java:目录下放置所有的Java文件(源代码文件)。
-
/src/main/resources:用于存放所有的资源文件,包括静态资源文件、配置文件、页面文件等。
-
/src/main/resources/static:用于存放各类静态资源。
-
/src/main/resources/templates:用于存放模板文件,如Thymeleaf(这个技术不懂不用着急,以后会介绍)模板文件。
-
/src/main/resources/application.properties:配置文件,这个文件非常重要。Spring Boot默认支持两种配置文件类型(.properties和.yml)。
-
/src/test/java:放置单元测试类java代码。
-
/target:放置编译后的.class文件和配置文件等。
Spring Boot将很多配置文件进行了统一管理,且配置了默认值。Spring Boot会自动在/src/main/resources目录下找application.properties或者application.yml配置文件,找到后将运用此配置文件中的配置,否则使用默认配置。这两种类型的配置文件有其一即可,也可以两者并存。两者的区别如下:
application.properties和application.yml配置文件的区别主要是书写格式不同,另外,application.yml格式不支持@PropertySource注解导入配置。
注意
.properties配置文件的优先级高于.yml。在.properties文件中配置了server.port=8080,同时,在.yml配置了server.port=8090,Spring Boot将使用.properties中的8080端口。
1.3.2 入口类
入口类的代码很简单,代码如下:
-
@SpringBootApplication:是一个组合注解,包含@EnableAutoConfiguration、@ComponentScan和@SpringBootConfiguration三个注解,是项目启动注解。如果我们使用这三个注解,项目依旧可以启动起来,只是过于烦琐。此时,可用@SpringBootApplication简化。
-
@SpringApplication.run:应用程序开始运行的方法。
提示
入口类需要放置在包的最外层,以便能够扫描到所有子包中的类。
1.3.3 测试类
Spring Boot的测试类主要放置在/src/test/java目录下面。项目创建完成后,Spring Boot会自动为我们生成测试类DemoApplicationTests.java,测试类的代码如下:
-
@RunWith(SpringRunner.class):@RunWith(Parameterized.class)是一个参数化运行器,可用于配合@Parameters使用JUnit的参数化功能。查源代码可知,SpringRunner类是继承的SpringJUnit4ClassRunner类,此处表明使用SpringJUnit4ClassRunner执行器,此执行器集成了Spring的一些功能。如果只是简单的JUnit单元测试,该注解可以去掉。
-
@SpringBootTest:此注解能够测试我们的SpringApplication,因为Spring Boot程序的入口是SpringApplication,基本上所有配置都会通过入口类去加载,而该注解可以引用入口类的配置。
-
@Test:JUnit单元测试的注解,注解在方法上表示一个测试方法。
当我们右键执行DemoApplicationTests. java中的contextLoads方法的时候,大家可以看到控制台打印的信息和执行入口类中的SpringApplication.run()方法,打印的信息是一致的。由此便知,@SpringBootTest是引入了入口类的配置。
1.3.4 pom文件
Spring Boot项目下的pom.xml文件主要用来存放依赖信息,具体代码如下(部分代码已省略):
m/b4xPdn1spg6khVJrJ9TztmjYBNo7IVmHD2Hxsj54hHXRVt2fkd9rhISVDIRXz7
-
spring-boot-starter-parent:是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。
-
spring-boot-starter-web:只要将其加入到项目的maven依赖中,我们就会得到一个可执行的Web应用。该依赖中包含许多常用的依赖包,比如spring-web、spring-webmvc等。这样,我们不需要做任何Web配置,便能获得相关Web服务。
-
spring-boot-starter-test:这个依赖和测试相关,只要引入它,就会把所有与测试相关的包全部引入。
-
spring-boot-maven-plugin:这是一个Maven插件,能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供执行Maven操作的可能,并能够将Spring Boot应用打包为可执行的jar或war文件。