您的位置:首页 > 编程语言 > Java开发

springboot读取配置文件的三种方式

2017-10-20 21:36 791 查看
方式一:
@Configuration
//@PropertySource("classpath:jdbc.properties")
//@PropertySource("classpath:config/jdbc222222.properties")
@PropertySources({@PropertySource("classpath:jdbc.properties"),@PropertySource("classpath:config/jdbc222222.properties")})
public class FileConfig {

}

@Component
public class Dbconfig {

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

@Value("${db.port}")
private Integer dbPort;

@Value("${db.password}")
private String dbPassword;

@Value("${db.username}")
private String dbUserName;

public void show(){
System.out.println(">>>>>>>>>>>Dbconfigz中获取到的参数");
System.out.println("dbUrl========="+dbUrl);
System.out.println("dbPort"+ "========="+dbPort);
System.out.println("dbPassword"+ "========="+dbPassword);
System.out.println("dbUserName"+ "========="+dbUserName);

}
}

配置文件的信息,配置文件的名称是jdbc.properties。路径是在resources下
db.password=root
db.username=root

data.url=127.0.0.12
data.port=12343
data.name=1233
data.password=root3

测试的主方式是:

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();
context.close();
}

方式二:通过environment获取外部的配置信息
@Component
public class UserConfig {

@Autowired
Environment environment;

@Value("${local.port}")
private String localPort;

@Value("${local.port}")
private Integer localPort2;

@Value("${tomcat.port:9090}")
private String tomcatPort;

public void show(){
System.out.println("application.properties中的local.ip的值:"+environment.getProperty("local.ip"));
System.out.println("application.properties中的local.port的值:"+environment.getProperty("local.port"));
System.out.println("application.properties中的local.port的值:"+environment.getProperty("local.port", Integer.class));
System.out.println("application.properties中的name的值:"+environment.getProperty("name"));
System.out.println("application.properties中的app.name的值:"+environment.getProperty("app.name"));
System.out.println("application.properties中的tomcat.port的值:"+environment.getProperty("tomcat.port"));
System.out.println("application.properties中的tomcat.port的值:"+tomcatPort);

}
}

方式三:
@Component
@ConfigurationProperties(prefix="data")
public class DataSourceProperties {

private String url;
private String port;
private String name;
private String password;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public void show(){
System.out.println(">>>>>>>>>>>>url"+url);
System.out.println(">>>>>>>>>>>>port"+port);
System.out.println(">>>>>>>>>>>>name"+name);
System.out.println(">>>>>>>>>>>>password"+password);
}

}

总的说明:
* 两种方法获取配置信息中的信息
* 配置文件的文件名字为application.properties
* 默认的位置在classpath根目录,或者classpath:/config file:/ file:config/
*
* 默认的配置文件名字可以使用 --spring.config.name来指定,只需要指定文件的名字,文件扩展名可以省略。
* 默认的配置文件路径可以使用--spring.config.location来指定,
* 配置文件需要指定全路径,包括目录和文件名字,还可以指定多个,多个用逗号隔开
* --spring.config.location=classpath:config/app.properties(如果是文件则file:文件的路径)
*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息