SpringBoot从零开始学(视频教学版)
上QQ阅读APP看书,第一时间看更新

1.3.2 自动配置

引入框架后,常需要一些配置,如Spring注解需要配置包扫描路径、静态资源的存储路径、Web容器端口号、字符编码或日志输出目录等。Spring Boot在配置上的优化,一是为框架提供了通用的配置,在无个性化配置时甚至可以零配置启动项目;二是为项目配置提供了统一的入口,可以通过一个配置文件搞定所有配置。

在1.3.1节中能看到,Web模块引入了Spring框架,使用Spring框架注解时就要配置包扫描。Spring Boot默认将程序的启动类(@SpringBootApplication所修饰的类)所在的包作为扫描路径,因此开发时只要将代码放到在启动类所在的包下,就无须做扫描包的配置。因为包扫描路径无法静态统一指定,因此它是一个特例。如需配置扫描路径,可以通过在启动类上添加注解@ComponentScan来指定。

对于一般的参数,Spring Boot官网文档进行了说明,包括全部参数与默认值,网址为https://docs.spring.io/spring-boot/docs/2.4.4/reference/html/appendix-application-properties.html#co mmon-application-properties。我们可以通过该网址查看配置的默认值。

比如有静态资源匹配模式,如图1.28所示。可以看到默认配置为“/**”,所有请求都会通过静态资源处理。

图1.28 配置参数静态资源匹配模式

再比如静态资源路径,如图1.29所示。默认路径有4个,分别是类路径下的/META-INF/resources/、/resources/、/static/和/public/。所以只要将静态资源放置到这些路径下,便无须另外配置。

图1.29 配置参数静态资源路径

以上是Spring Boot所做的自动配置,但在项目中仍会面临个性化的配置需求。设置项目参数,只需要在开发环境的resources目录下放置application.properties和application.yaml(application.yml)即可,Spring Boot可以自动识别这两个配置文件。Properties和YAML是Spring Boot支持的两种配置文件格式,YAML又可以写作YML。两种格式的语法都很简单,YAML的结构更清晰,占用空间也更优,因此本书中使用YAML。

【示例1.1】 修改Web服务端口号

在官方文档中找到端口的配置,如图1.30所示,默认是8080。

图1.30 配置参数服务端口

将端口设置为9999,需要在application.yaml中添加代码:

     server:
       port: 9999

再次启动程序会看到控制台输出“Tomcat started on port(s): 9999 (http) with context path”,表示端口已配置为9999。

【示例1.2】 修改Spring的banner

Spring启动时会在控制台打印banner,如图1.31所示。

修改banner的办法有两个:

· 一是将名称为banner(JPG或者PNG)的图片放在classpath路径下。

· 二是修改banner路径。

这里我们采取第2种方式,将项目打印图标修改为如图1.32所示的样式,这个是Spring的图标。

将其保存为custom-banner.jpg,并放到resource/picture目录下。查看官方文档中banner的配置,如图1.33所示。

图1.31 Spring默认banner

图1.32 Spring框架图标

图1.33 配置参数banner图片路径

于是在application.yaml中添加如下配置:

然后重新启动项目,控制台输出如图1.34所示,表示配置成功。

图1.34 控制台输出Spring图标