上一篇笔记简单的讲了一下SpringBoot项目的创建,以及如何启动。这次笔记主要记录一下application.properties配置文件的简单配置。SpringBoot对于SpringMVC最大的改变就是将很多xml配置文件给干掉了,主要通过application.properties和注解来配置,可以使整个项目结构看起来更加简洁。注:这篇笔记使用application.properties。

配置文件简述

配置文件类型

SpringBoot支持两种配置文件格式,一种是默认的application.properties,还有一种是更为简单方便的application.yaml(推荐)。yaml是一种以数据为中心的配置格式,在配置数据的时候具有面向对象的特征。通过下面的示例可以看出其中的区别:

application.properties:

server.port=8090
server.context-path=/demo

application.yaml:

# 需要注意的是属性和参数之间必须有一个空格隔开,不能是一个tab,也不能没有空格
server:
  port: 8090
  context-path: /demo

可以看到,yaml明显更简洁,而且结构感更强,其中server.port是设置的访问端口号,server.context-path是设置的访问路径(默认为/)。需要注意的是,目前IDEA在yaml配置文件中提供了自动提示。

命令行参数配置

上一篇笔记已经讲了,运行SpringBoot项目只需要执行java -jar 包名.jar就可以运行了,其实还可以这样干,java -jar 包名.jar --server.port=9999,这样就可以将默认端口改成9999。

自定义属性

application.properties可以自定义属性,并在Controller类中调用,如:

application.properties

man.name=Jack
man.age=18
man.sex=male

新建一个Controller类

@RestController
public class DemoController {

      //通过@Value注解获取配置文件对应的参数并且赋值给变量
    @Value("${man.name}")
    private String name;

    @Value("${man.age}")
    private Integer age;

    @Value("${man.sex}")
    private String sex;

      //设置访问路径
    @RequestMapping(value = "/")
    public String index(){
        return "姓名:"+name+",年龄:"+age+",性别:"+sex;
    }
}

执行Application类,访问localhost:8080就可以看到姓名:Jack,年龄:18,性别:male

Profile配置

Profile是Spring用来针对不同环境对不同的配置提供支持的,全局Profile配置使用application-{profile}.properties(如application-prod.properties)。通过在application.properties中设置spring.profiles.active=prod来指定活动的Profile。

如:

我们新建两个配置文件application-prod.properties(生产环境),application-dev.properties(开发环境),用来模拟生产环境和开发环境配置不一样的情况。

如端口配置:

//application-prod.properties
server.port=80
//application-dev.properties
server.port=8080

然后在默认的application.properties中配置spring.profiles.active=dev,然后启动项目所访问的路径就是localhost:8080,同样设置为prod的话,访问路径就是localhost:80

上面的配置只是一些很简单的配置,学到后面的时候还会有更多的配置需要学,目前为止掌握这些就够了。现在还没有涉及到数据库的操作,到了数据库和JPA操作的时候,还会说到一些配置的。

有趣的banner自定义

大家应该在启动项目的时候注意到了控制台输出有Spring的图案,其实这个是可以自定义的。

只需要在src/main/resources下新建一个banner.txt,然后写入你想显示的图案就行了。可以通过http://patorjk.com/software/taag这个网站来生成字符。如写入Hello World,然后将生成的字符复制到banner.txt中就可以了。如下图:

值得注意的是,自定义banner还有一些属性可以设置:

${AnsiColor.BRIGHT_RED}:用于设置设置控制台中输出内容的颜色(放在内容之前)
${application.version}:获取MANIFEST.MF文件中的版本号
${application.formatted-version}:获取格式化后的${application.version}版本信息
${spring-boot.version}:获取Spring Boot的版本号
${spring-boot.formatted-version}:获取格式化后的Spring Boot版本信息

例如:

${AnsiColor.BLUE}
  ___ ___         .__  .__            __      __            .__       .___
 /   |   \   ____ |  | |  |   ____   /  \    /  \___________|  |    __| _/
/    ~    \_/ __ \|  | |  |  /  _ \  \   \/\/   /  _ \_  __ \  |   / __ |
\    Y    /\  ___/|  |_|  |_(  <_> )  \        (  <_> )  | \/  |__/ /_/ |
 \___|_  /  \___  >____/____/\____/    \__/\  / \____/|__|  |____/\____ |
       \/       \/                          \/                         \/
${AnsiColor.BRIGHT_YELLOW}
${spring-boot.version}

启动:

本次就记录到这里吧,后面这个笔记系列会一直更新下去的。