springboot读取配置文件的几种方式
一.读取默认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));
}
}
浙公网安备 33010602011771号