购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 使用自定义配置

如果开发者按照2.1节的说明,使用Eclipse或者IntelliJ IDEA新建项目,那么可以在项目中发现,它还会创建一个属性文件application.properties,如图2-9所示。

图2-9 属性文件application.properties

application.properties是最重要的配置文件,关于这个文件可配置的内容,可参考Spring官网文章“Spring Boot Reference Documentation”。这些配置有成百上千项,但好在我们并不需要全部进行配置,只需要根据自己项目引用的starter来配置少数项即可。

本书不会像流水账那样罗列Spring Boot的配置项,因为这些很无趣也没有必要,而只是根据引入的starter,讨论与其相关的配置项。需要我们记住的是,通过这些约定的配置项,可以在很大程度上实现自定义开发。这就是Spring Boot的理念,配置尽量简单并且存在约定,屏蔽Spring内部的细节,使得Spring开箱后经过简单的配置即可让开发者快速开发和部署,也可以让测试人员快速测试。

application.properties是一个默认且重要的配置文件,通过该文件,我们可以根据自己的需要实现自定义。例如,假设当前8080端口已经被占用,我们希望使用8090端口启动Tomcat服务器,那么只需要在这个文件中添加如下配置项:

server.port=8090

此时以Java Application的形式运行类Chapter2Application就可以看到Spring Boot绑定的Tomcat服务器的启动日志:

......
Starting Chapter2Application using Java 18.0.1 with PID 8964 (F:\spring boot 
3\chapter2\target\classes started by ASUS in F:\spring boot 3\chapter2)
No active profile set, falling back to 1 default profile: "default"
Tomcat initialized with port(s): 8090 (http)
Starting service [Tomcat]
Starting Servlet engine: [Apache Tomcat/10.1.1]
Initializing Spring embedded WebApplicationContext
Root WebApplicationContext: initialization completed in 699 ms
......

注意,从加粗的这行日志可以看出,Tomcat服务器是以8090端口启动的。相信你能明白了,只需要修改配置文件,就能将Spring Boot的默认配置变为自定义配置。

进行Spring Boot的参数配置除了使用属性文件,还可以使用yml文件,它会按照以下优先级进行加载:

● 命令行参数;

● 来自java:comp/env的JNDI 属性;

● Java系统属性(System.getProperties());

● 操作系统环境变量;

● RandomValuePropertySource配置的random. * 属性值;

● jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件;

● jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件;

● jar包外部的application.properties或application.yml(不带spring.profile)配置文件;

● jar包内部的application.properties或application.yml(不带spring.profile)配置文件;

● @Configuration注解类上的@PropertySource;

● 通过SpringApplication.setDefaultProperties指定的默认属性。

实际上,yml文件的配置与属性文件只是简写和缩进的差别,差异并不大。本书为了缩减篇幅,在介绍Spring Boot的章节都采用属性文件,只有在第16章介绍微服务时,才会用yml文件,因为在微服务开发中使用yml文件更普遍。 DLjwr97v2k9SF9uitYgIduGrc10bh/lyKlPRvghOlCRx4bUngfHpkyBv5xwH6VIJ

点击中间区域
呼出菜单
上一章
目录
下一章
×