千家信息网

springboot的propeties配置高级应用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,一:EnvironmentPostProcessor接口的使用,使用该接口,可以实现动态(就是根据业务逻辑)的加载properties文件。@Componentpublic class MyEnvir
千家信息网最后更新 2026年11月02日springboot的propeties配置高级应用

一:EnvironmentPostProcessor接口的使用,使用该接口,可以实现动态(就是根据业务逻辑)的加载properties文件。

@Component

public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor {


@Override

public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {

try(InputStream inputStream = new FileInputStream("E:/tmp/springboottest.properties")){

Properties source = new Properties();

source.load(inputStream);

PropertiesPropertySource propertySource = new PropertiesPropertySource("my", source);

environment.getPropertySources().addLast(propertySource);

}catch (IOException e) {

e.printStackTrace();

}

}


}


然后获取配置文件中的内容:

public static void main(String[] args) {

ConfigurableApplicationContext context = SpringApplication.run(App.class, args);

context.getBean(Runnable.class).run();

//String property = context.getEnvironment().getProperty("local.ip");

//System.out.println("获取到的参数是:"+property);

//context.getBean(UserConfig.class).show();

//context.getBean(Dbconfig.class).show();

//context.getBean(DataSourceProperties.class).show();

System.out.println(context.getBean(TomcatProperties.class));

System.out.println(context.getEnvironment().getProperty("spring.boot.name"));

context.close();

}



二:springboot支持数组和集合的配置;

package com.zcp.springstart;


import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;


import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.stereotype.Component;


/**

* 支持获取数组,集合

* 配置方式为:name[index]=value

* 在application.properties文件中的写法:

* data.url=127.0.0.1

data.port=1234

data.name=123

data.password=root.post

ds.hosts[0]=128.128.128.0

ds.hosts[1]=128.128.128.1

ds.hosts[2]=128.128.128.2

ds.hosts[3]=128.128.128.3

ds.ports[0]=8888

ds.ports[1]=8889

ds.ports[2]=8890

ds.ports[3]=8891

ds.ports[4]=8892

*

Title: TomcatProperties

*

Description:

*

Company: www.itcast.cn

* @version 1.0

*/

@Component

@ConfigurationProperties("ds")

public class TomcatProperties {

private List hosts = new ArrayList<>();

private String[] ports;


public String[] getPorts() {

return ports;

}


public void setPorts(String[] ports) {

this.ports = ports;

}


public List getHosts() {

return hosts;

}


public void setHosts(List hosts) {

this.hosts = hosts;

}


@Override

public String toString() {

return "TomcatProperties [hosts=" + hosts + ", ports=" + Arrays.toString(ports) + "]";

}



}


三:读取的application-*.properties配置信息

package com.zcp.springstart;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.ConfigurableApplicationContext;



/** 方式一:

* 启动参数来控制生效的profile.可以同时激活多个profile

* --spring.profiles.active=dev,test

*

* 方式二:

*

* SpringApplication springApplication = new SpringApplication(App2.class);

//springApplication.setAdditionalProfiles("dev");

springApplication.setAdditionalProfiles("dev","test");

说明:

application-dev.properties

application-test.properties

的命名

*

Title: App2

*

Description:

*

Company: www.itcast.cn

* @version 1.0

*/

@SpringBootApplication

public class App2 {

public static void main(String[] args) {

SpringApplication springApplication = new SpringApplication(App2.class);

//springApplication.setAdditionalProfiles("dev");

springApplication.setAdditionalProfiles("dev","test");

ConfigurableApplicationContext context = springApplication.run(args);

System.out.println(">>>>>>>>>");

System.out.println(context.getEnvironment().getProperty("db123.url"));

System.out.println(context.getEnvironment().getProperty("db123.url2"));

System.out.println(">>>>>>>>>>.");

context.close();

}


}


如果是类或者方法,可以通过注解@Profile("test")来使用

配置 文件 方式 参数 接口 数组 支持 业务 信息 内容 写法 动态 可以通过 同时 多个 就是 方法 来使 注解 激活 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 互联网最新的科技 猪兼强互联网科技 互联网 科技创业 互联网与新科技 深圳天众互联网科技公司 广西互联网科技公司 长亮科技互联网金融 天扬科技互联网广告 美国互联网前沿科技 衡水科技产业互联网平台 互联网和高科技公司 中国航天科技大学国际工业互联网 米聚互联网科技南京有限公司排面 互联网新科技动漫ppt素材 富国互联网科技002692 郑州欣桑互联网科技有限公司 福仕德教育科技互联网 互联网企业和网络科技有限公司 互联网科技股 广州大一互联网络科技有限公司 科技企业和互联网企业 互联网科技公司官网 极限挑战互联网科技 玖二柒互联网科技公司待遇 注册互联网科技公司经营范围大全 广州新华互联网科技学校电竞方面 广州有谷有贝互联网科技有限公司 高科技和互联网的现代国家
0