首页 > 技术文章 > springboot读取配置文件的几种方式

ldwnana 2018-03-13 22:23 原文

一.读取默认application.properties配置文件中自定义的属性

@Component
public class UserConfig {

	@Autowired
	private Environment environment;
	
	@Value("${local.ip}")
	private String ip;
	
	@Value("${local.port}")
	private Integer port;//自动转为整形
	/**
	 * 当配置文件没值的时候,默认值为8090
	 */
	@Value("${tomcat.port:8090}")
	private Integer tomcatPort;
	
	public void show(){
		System.out.println(environment.getProperty("local.ip"));
		System.out.println(environment.getProperty("local.port",Integer.class));
		System.out.println(environment.getProperty("app.name"));
		
		System.out.println(ip+"===="+port);
		System.out.println(tomcatPort);
	}
}

  application.properties配置文件内容

local.ip=127.0.0.1
local.port=1010


name=springboot
#变量的引用
app.name=this is ${name}   

#配置类里可以给默认值
tomcat.port=9999

  测试

@SpringBootApplication
public class App {
	public static void main(String[] args) {
		ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
		//获取配置文件的值
		System.out.println(context.getEnvironment().getProperty("local.ip"));
		context.getBean(JdbcConfig.class).show();
		//通过配置类获取配置文件信息
		context.getBean(UserConfig.class).show();
	}
}

  

 

 

第二种方式:读取自定义配置文件信息----spring管理+指定配置文件+@value

@Component
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {

	@Value("${url}")
	private String url;

	public void show() {
		System.out.println(url);
	}
}

  配置文件内容

url=com.mysql.jdbc.Driver

  测试

@SpringBootApplication
public class App {
	public static void main(String[] args) {
		ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
		//获取配置文件的值
		System.out.println(context.getEnvironment().getProperty("local.ip"));
		context.getBean(JdbcConfig.class).show();
		//通过配置类获取配置文件信息
		context.getBean(UserConfig.class).show();
	}
}

  

第三种方式: 注意 要有setget方法,配置类需要被spring管理,指定配置文件前缀和位置

url=com.mysql.jdbc.Driver
test=mysql


#注入集合的信息
list[0]=192
list[1]=193
list[2]=194

  支持注入  集合 数组  配置方法  list[0] .....

@Configuration
@ConfigurationProperties(prefix="redis")
@PropertySource("classpath:jdbc.properties")
public class JdbcConfigPro {
	private String test;
	
	//注入集合
	private List<String> list=new ArrayList<>();
	
	public List<String> getList() {
		return list;
	}

	public void setList(List<String> list) {
		this.list = list;
	}

	public String getTest() {
		return test;
	}

	public void setTest(String test) {
		this.test = test;
	}

	public void show(){
		System.out.println(test+"configproperties");
		System.out.println(list.get(0));
	}
}

  

  

推荐阅读