一步一步学Spring Boot 2:微服务项目实战
上QQ阅读APP看书,第一时间看更新

1.4 Spring Boot文件目录介绍

1.4.1 工程目录

Spring Boot的工程目录如图1-12所示。

图1-12 Spring Boot工程目录

  • /src/main/java:目录下放置所有的Java文件(源代码文件)。
  • /src/main/resources:用于存放所有的资源文件,包括静态资源文件、配置文件、页面文件等。
  • /src/main/resources/static:用于存放各类静态资源。
  • /src/main/resources/application.properties:配置文件,这个文件非常重要。Spring Boot默认支持两种配置文件类型,即.properties和.yml。
  • /src/main/resources/templates:用于存放模板文件,如Thymeleaf(这个技术不懂不用着急,以后会介绍)模板文件。
  • /src/test/java:放置单元测试类Java代码。
  • /target:放置编译后的.class文件、配置文件等。

Spring Boot将很多配置文件进行了统一管理,且配置了默认值。Spring Boot会自动在/src/main/resources目录下找application.properties或者application.yml配置文件。找到后将运用此配置文件中的配置,否则使用默认配置。这两种类型的配置文件有其一即可,也可以两者并存。两者区别如下:

   application.properties:
   server.port = 8080
   application.yml:
   server:
        port:8080

注意 properties配置文件的优先级高于.yml 。在.properties文件中配置了server.port = 8080,同时在.yml中配置了server.port = 8090。Spring Boot将使用.properties中的8080端口。

1.4.2 入口类

入口类的类名是根据项目名称生成的,我们的项目名称是my-spring-boot,故入口类的类名是项目名称+Application,即MySpringBootApplication.java。入口类的代码很简单,代码如下:

  • @SpringBootApplication:是一个组合注解,包含@EnableAutoConfiguration、@ComponentScan和@SpringBootConfiguration三个注解,是项目启动注解。如果我们使用这三个注解,项目依旧可以启动起来,只是过于烦琐。因此,用@SpringBootApplication进行简化。
  • @SpringApplication.run:应用程序开始运行的方法。

提示 入口类需要放置在包的最外层,以便能够扫描到所有子包中的类。

1.4.3 测试类

Spring Boot的测试类主要放置在/src/test/java目录下面。项目创建完成后,Spring Boot会自动为我们生成测试类MySpringBootApplicationTests.java。其类名也是根据项目名称+ApplicationTests生成的。测试类的代码如下:

  • @RunWith(SpringRunner.class):@RunWith(Parameterized.class)是参数化运行器,配合@Parameters使用Junit的参数化功能。查源代码可知,SpringRunner类继承自SpringJUnit4ClassRunner类,此处表明使用SpringJUnit4ClassRunner执行器,此执行器集成了Spring的一些功能。如果只是简单的Junit单元测试,该注解可以去掉。
  • @SpringBootTest:此注解能够测试我们的SpringApplication,因为Spring Boot程序的入口是SpringApplication,所以基本上所有配置都会通过入口类去加载,而该注解可以引用入口类的配置。
  • @Test:Junit单元测试的注解,在方法上,注解表示一个测试方法。

当我们右击执行MySpringBootApplicationTests.java中的contextLoads方法的时候,大家可以看到控制台打印的信息和执行入口类中的SpringApplication.run()方法,打印的信息是一致的。由此便知,@SpringBootTest引入了入口类的配置。

1.4.4 pom文件

Spring Boot项目下的pom.xml文件主要用来存放依赖信息。具体代码如下(部分代码已省略):

  • 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文件。

1.5 Maven Helper插件的安装和使用

1.5.1 Maven Helper插件介绍

Maven Helper是一款可以方便查看Maven依赖树的插件,可以在IntelliJ IDEA上安装使用它。Maven Helper支持多种视图来查看Maven依赖,同时可以帮助我们分析pom文件中的依赖是否存在冲突,方便快速定位错误。

1.5.2 Maven Helper插件的安装

安装Maven Helper插件很简单,在菜单栏选择【File】→【Settings】→【Plugins】,在搜索框中输入【Maven Helper】,然后单击【Install】安装即可。安装成功之后,重启IntelliJ IDEA即可使用。

1.5.3 Maven Helper插件的使用

插件安装成功之后,如图1-13所示,打开pom文件,除了Text视图外,多了一个Dependency Analyzer视图。

图1-13 Maven Helper插件

  • All Dependencies as List:以列表方式显示所有依赖包。
  • All Dependencies as Tree:以树形方式显示所有依赖包。
  • Conflicts:查看所有有冲突的依赖包,如果存在冲突,就会显示红色,同时会显示在右侧视图。我们可以单击有冲突的包,右击【Exclude】来排除冲突,通过右击【Jump To Source[F12]】可以跳转到源代码。