springboot的房地产配置高级应用

一: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 主机=new ArrayList<在();

私人String[]港口;


公共String [] getPorts () {

返回港口;

}


公共空setPorts (String[]端口){

。港口=港口;

}


公共ListgetHosts () {

返回主机;

}


公共空setHosts (List主机){

。主机=主机;

}


@Override

公共字符串toString () {

返回“TomcatProperties(主机=? +”,端口=" + Arrays.toString(港口)+“]”;

}



}


三:读取的应用程序- *。null

springboot的房地产配置高级应用