当前位置: 主页 > JAVA语言

java 如何编写配置文件-java函数的编写

发布时间:2023-03-23 22:21   浏览次数:次   作者:佚名

SpringBoot的配置文件

一、SpringBoot配置文件分类

SpringBoot 是基于约定的,很多配置都是默认的(主方法上@SpringBootApplication注解的子注解@EnableAutoConfiguration实现的,是在META-INF/spring.factories中的自动配置了,可以看狂神的的解释,它是boot2解析,boot3里面实现用的更多的是流(Stream),其他没怎么变)。

但是如果想使用自己的配置替换默认配置或添加其他配置的话,可以使用application.properties或者application.yml(application.yaml)进行配置。

遵循框架的规则,默认配置文件名称:application在同一级目录下的优先级:properties>yml>yaml,这个如果没看源码也可以通过测试得出。 二、yaml 概述

首先需要明白的yaml是一种语言,是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。百度上解释是它是以数据作为中心,而不是以标记语言为重点!.yml 是用YAML语言编写的配置文件,YAML的诞生是参考JSON,XML和SDL等语言。

居然是语言,就有它的语法、格式。

下面给出是.yml配置文件的案例:

house:
  family:
    name: Doe
    parents:
      - John
      - Jane
    children:
      - Paul
      - Mark
      - Simone
  address:
    number: 34
    street: Main Street
    city: Nowheretown
    zipcode: 12345

java 如何编写配置文件_用java编写三角形_java函数的编写

注意:

下面写一个 application.yml 配置文件,进行测试

server:
  port: 9000 #修改端口号
  servlet:
    context-path: /xxx #修改上下文路径

在这里插入图片描述

需要注意的是,它还可以进行参数引用,使用${??},例如:

port: 9001
server:
  port: ${port}
  servlet:
    context-path: /xxx

在这里插入图片描述

.properties小编觉得应该都会用,就不多写了,yml是被推荐的配置方式,更直观吧。

三、多环境配置

java函数的编写_用java编写三角形_java 如何编写配置文件

在项目进行过程中,除了有开发环境,还有测试环境,上线环境等。每个环境有不同的配置信息,例如端口,上下文件,数据库的urljava 如何编写配置文件,用户名、密码等等。

使用多环境配置文件,可以方便的切换不同的配置。

使用方式:创建多个配置文件,名称规则:application-环境名称.properties(yml)

例如:

创建开发环境的配置文件:application-dev.properties(application-dev.yml)

创建测试使用的配置文件:application-test.properties(application-test.yml)

配置下面的语句就可以实现环境切换:

.yml:

spring:
  profiles:
    active: 环境名称

java 如何编写配置文件_用java编写三角形_java函数的编写

.properties

spring.profiles.active=环境名称

测试:

准备好了三个配置文件

在这里插入图片描述

application.yml的内容

spring:
  profiles:
    active: dev
server:
  port: 8080

application-dev.yml的内容

server:
  port: 9001
  servlet:
    context-path: /yyy

java函数的编写_java 如何编写配置文件_用java编写三角形

测试结果

在这里插入图片描述

可以观察出:环境进行了切换后java 如何编写配置文件,application.yml中的后面内容不起效.

四、@Value 和 @ConfigurationProperties

下面是application.yml配置。

server:
  port: 8082
  servlet:
    context-path: /demo
# 配置key=value
school:
  name:
   - 合肥师范
   - 武汉大学
  address: 合肥

在这里插入图片描述

如果直接这样,那么配置文件中的name注入不进去(会为null),因为配置文件中的是多成员。

如果是这样那么就可以注入成功。数组也是可以的。

java 如何编写配置文件_java函数的编写_用java编写三角形

在这里插入图片描述

在这里插入图片描述

注意:@ConfigurationProperties 注解的使用,一定要记得要对 prefix属性进行赋值(默认是空字符串) ,它会在配置文件中查询 prefix 这个元素,然后进行“映射”。

下面可以看看狂神说这个图,对@Value和@ConfigurationProperties进行个对比

在这里插入图片描述

五、总结

小编写的这篇博客没有对properties配置进行说明,其实用法是一样的。而且SpringBoot官方推荐我们使用yaml进行配置,所以这里讲解和例子都是用的yml配置。

如果我们在某个业务中,只需要获取配置文件中的某个值,可以使用一下 @value;

如果说,我们专门编写了一个JavaBean来和配置文件进行一一映射,就直接@ConfigurationProperties,不要犹豫!因为它不单单可以做到简单类型的映射。

推荐文献: