SpringBoot的配置文件有哪几种格式?

 我来答
Lisiwei720
2020-06-06
知道答主
回答量:2
采纳率:0%
帮助的人:1.1万
展开全部
SpringBoot中的配置文件主要有三种格式,properties、yaml、和xml方式。

- 其中properties格式配置文件后缀是.properties,配置项为:server.port = 9090
- yaml格式配置文件后缀是.yml,配置项是:server.port: 9090

在SpringBoot中,使用最广泛的配置文件是yaml,yaml之所以流行,除了他配置语法精简之外,还因为yaml是一个跨编程语言的配置文件。

在SpringBoot中,除了yaml之外,properties也比较常用,但是XML几乎不用,看得出来Spring团队非常痛恨XML配置文件!认为它不是一个好的语言。

如果你对常见的配置文件有哪几种格式不熟悉,就去黑马程序员官网视频库看免费视频。
IT胶囊
2021-08-03 · 致力于提供深度,创业、教育、职场等内容。
IT胶囊
向TA提问
展开全部

SpringBoot属性和配置

1. 在构建时自动扩展属性

您可以使用现有的构建配置自动扩展它们,而不是硬编码在项目的构建配置中也指定的某些属性。这在 Maven 和 Gradle 中都是可能的。

1.1. 使用 Maven 自动扩展属性

您可以使用资源过滤从 Maven 项目中自动扩展属性。如果使用spring-boot-starter-parent,则可以使用@..@占位符引用 Maven 的“项目属性” ,如以下示例所示:

app.encoding=@project.build.sourceEncoding@

app.java.version=@java.version@

如果您不使用 starter parent,则需要在<build/>您的元素中包含以下元素pom.xml:

<resources>

    <resource>

        <directory>src/main/resources</directory>

        <filtering>true</filtering>

    </resource>

</resources>

您还需要在里面包含以下元素<plugins/>:

<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-resources-plugin</artifactId>

    <version>2.7</version>

    <configuration>

        <delimiters>

            <delimiter>@</delimiter>

        </delimiters>

        <useDefaultDelimiters>false</useDefaultDelimiters>

    </configuration>

</plugin>

useDefaultDelimiters如果您${placeholder}在配置中使用标准 Spring 占位符(例如),则 该属性很重要。如果该属性未设置为false,则构建可能会扩展这些属性。

1.2. 使用 Gradle 自动扩展属性

您可以通过配置 Java 插件的processResources任务来自动从 Gradle 项目扩展属性,如以下示例所示:

processResources {

    expand(project.properties)

}

然后,您可以使用占位符来引用您的 Gradle 项目的属性,如以下示例所示:

app.name=${name}

app.description=${description}

2. 外化 SpringApplication 的配置

ASpringApplication具有 bean 属性设置器,因此您可以在创建应用程序时使用其 Java API 来修改其行为。或者,您可以通过在spring.main.*. 例如,在 中application.properties,您可能有以下设置:

spring.main.web-application-type=none

spring.main.banner-mode=off

那么 Spring Boot 横幅不会在启动时打印,应用程序也不会启动嵌入式 Web 服务器。

外部配置中定义的属性会覆盖和替换 Java API 指定的值,主要来源的显着例外。主要来源是提供给SpringApplication构造函数的那些:

import org.springframework.boot.Banner;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication

public class MyApplication {


    public static void main(String[] args) {

        SpringApplication application = new SpringApplication(MyApplication.class);

        application.setBannerMode(Banner.Mode.OFF);

        application.run(args);

    }


}

或sources(…)a 的方法SpringApplicationBuilder:

import org.springframework.boot.Banner;

import org.springframework.boot.builder.SpringApplicationBuilder;


public class MyApplication {


    public static void main(String[] args) {

        new SpringApplicationBuilder()

            .bannerMode(Banner.Mode.OFF)

            .sources(MyApplication.class)

            .run(args);

    }


}

鉴于上面的例子,如果我们有以下配置:

spring.main.sources=com.example.MyDatabaseConfig,com.example.MyJmsConfig

spring.main.banner-mode=console

实际应用程序将显示横幅(由配置覆盖)并使用三个来源作为ApplicationContext. 应用程序来源是:

  • MyApplication (来自代码)

  • MyDatabaseConfig (来自外部配置)

  • MyJmsConfig(来自外部配置)

3. 更改应用程序外部属性的位置

默认情况下,来自不同源的属性被添加到弹簧Environment以定义的顺序(参照“的features.html中的”“弹簧引导功能”部分的确切顺序)。

您还可以提供以下系统属性(或环境变量)来更改行为:

  • spring.config.name( SPRING_CONFIG_NAME): 默认application为文件名的根。

  • spring.config.location( SPRING_CONFIG_LOCATION):要加载的文件(例如类路径资源或 URL)。Environment为该文档设置了一个单独的属性源,它可以被系统属性、环境变量或命令行覆盖。

  • 无论您在环境中设置什么,Spring Boot 始终application.properties按上述方式加载。默认情况下,如果使用 YAML,则扩展名为“.yml”的文件也会添加到列表中。

    Spring Boot 会记录在该DEBUG级别加载的配置文件以及它在该级别未找到的候选文件TRACE。

Spring boot

如有不懂:请参阅Spring中国教育管理中心了解更多详情。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式