在Spring Boot中配置文件特定的自定义属性文件

时间:2019-02-04 15:33:43

标签: java spring spring-boot spring-profiles

想检查Spring Boot是否提供帮助来使用除application.properties文件之外的配置文件。例如: my-custom.properties 文件,该文件可以是特定于配置文件的, 例如:

  1. my-custom-dev.properties for dev 个人资料
  2. my-custom-uat.properties 燕麦个人资料

编辑:问题是,我有普通的application- {env} .property文件,除此之外,还有其他属性文件与它们的数据内容一致(例如:我想要的用于日志的DB特定属性)存储在db-log.properties中,如何使其他文件配置文件敏感?

5 个答案:

答案 0 :(得分:0)

是的。绝对。您只需要在启动时提供所需的个人资料即可。
例如:

function add_acf_option_page() {
    if( function_exists('acf_add_options_page') ) {
        acf_add_options_page(array(
            'page_title'    => 'Theme General Settings',
            'menu_title'    => 'Theme Settings',
            'menu_slug'     => 'theme-general-settings',
            'capability'    => 'manage_options',
            'redirect'      => false
        ));
        acf_add_options_sub_page( array(
            'page_title'  => __( 'Books Shortcode Reference', 'textdomain' ),
            'menu_title'  => __( 'Shortcode Reference', 'textdomain' ),
            'parent_slug' => 'theme-general-settings',
            'capability' => 'manage_options',
            'menu_slug'   => 'books-ref-page',
        ) );
    }
}
add_action('acf/init', 'add_acf_option_page' );

function add_custom_option_page() {
    add_submenu_page( 
        null, 
        __( 'Books Shortcode Reference', 'textdomain' ), 
        __( 'Shortcode Reference', 'textdomain' ),
        'manage_options', 
        'books-ref-page', 
        'books_ref_page_callback'
}
add_action('admin_menu', 'add_custom_option_page');

function books_ref_page_callback() {
     ?>
    <div class="wrap">
        <h1><?php _e( 'Books Shortcode Reference', 'textdomain' ); ?></h1>
        <p><?php _e( 'Helpful stuff here', 'textdomain' ); ?></p>
    </div>
    <?php
}

将使用application-prod.properties

-Dspring.profiles.active=prod 

将使用application-custom.properties

答案 1 :(得分:0)

除了application.properties文件,

可以使用以下约定定义

特定于配置文件的属性:application- {profile} .properties。

环境具有一组默认配置文件(默认情况下,为[default]),如果未设置任何活动配置文件,则使用这些默认配置文件(换句话说,如果未显式激活任何配置文件,则将加载application-default.properties中的属性) )

要运行多个配置文件:

1.application-prod.properties

2.application-dev.properties

node_modules

3.application.properties(默认配置文件)

git+https://

4。带有自定义属性文件的命令行Args

spring.config.name -设置配置文件名称(逗号分隔值) spring.config.location -设置Spring Boot查找外部化配置文件的位置。

roi[0]

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-profile-specific-properties

答案 2 :(得分:0)

除了application.properties文件之外,您还可以根据需要将其定义为application-{profile}.properties。 所选文件将在启动后根据您选择的配置文件确定。

答案 3 :(得分:0)

您可以将其与有效的个人资料一起使用

@Configuration
@PropertySource("classpath:my-custom-${spring.profiles.active}.properties")

答案 4 :(得分:-1)

spring使用的默认约定是application-.properties。因此,如果profile是dev,那么它将寻找application-dev.properties

您还可以使用bootstrap.properties文件,并可以指定spring.application.name = my-custom

在那种情况下,spring将查找my-custom.properties文件,并且您当然可以将其与profile dev,uat一起使用,因此属性文件名应为my-custom-dev.properties。

您还可以将配置文件作为命令行参数以及-Dspring.config.location =文件的路径传递。