中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot的propeties配置高級應用

發布時間:2020-08-06 11:47:24 來源:網絡 閱讀:2264 作者:zcp617504296 欄目:軟件技術

一: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

 * <p>Title: TomcatProperties</p>

 * <p>Description: </p>

 * <p>Company: www.itcast.cn</p> 

 * @version 1.0

 */

@Component

@ConfigurationProperties("ds")

public class TomcatProperties {

private List<String> hosts = new ArrayList<>();

private String[] ports;


public String[] getPorts() {

return ports;

}


public void setPorts(String[] ports) {

this.ports = ports;

}


public List<String> getHosts() {

return hosts;

}


public void setHosts(List<String> 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

的命名

 * <p>Title: App2</p>

 * <p>Description: </p>

 * <p>Company: www.itcast.cn</p> 

 * @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")來使用

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

施甸县| 涞水县| 监利县| 吉木乃县| 丹江口市| 东山县| 图片| 威远县| 启东市| 江达县| 巨鹿县| 获嘉县| 越西县| 宜川县| 红河县| 弥渡县| 北流市| 桂平市| 辉县市| 汶上县| 青阳县| 长治县| 镇安县| 平阳县| 富蕴县| 上饶市| 榆社县| 惠东县| 通辽市| 涡阳县| 阜城县| 十堰市| 丰县| 龙门县| 荥经县| 海城市| 凯里市| 宁强县| 岳池县| 理塘县| 横山县|