读取一个配置文件:
在resource下创建一个application.properties ,内容:
local.ip=192.168.1.12
配置文件默认的名字为:application.properties ,默认位置在classpath根目录下或者classpath:/config下。file:/或 file:/config
第一种方法:
在app类中读取配置文件内容
package com.gcx.spring.SpringBoot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
/**
* Hello world!
*
*/
@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"));
}
}
运行结果:
或者用这种方式,创建一个UserConfig.java
package com.gcx.spring.SpringBoot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class UserConfig {
@Autowired
private Environment env;
public void show(){
System.out.println("local.ip:"+env.getProperty("local.ip"));
}
}
修改app类:
package com.gcx.spring.SpringBoot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/**
* Hello world!
*
*/
@SpringBootApplication
public class App {
public static void main( String[] args ){
ConfigurableApplicationContext context=SpringApplication.run(App.class, args);
context.getBean(UserConfig.class).show();
//System.out.println(context.getEnvironment().getProperty("local.ip"));
}
}
得到同样地结果
第三种方式:在application.properties 加上:
local.port=8080
在UserConfig中加入一个@Value注解
运行app类:
但我们有时候不想让配置文件叫application.properties,想要换一个名字
把application.properties 换成 gcx.properties
在运行的时候,运行Run Confiugurations ---->在Arguments写上一句话---->Run
但是有时候我们不满足需求,想要放在我自己指定的文件中:
首先在resources下创建一个conf 在Run Configutations
也可以支持多个,比如在文件中:E:/test/tomcat.properties
此处不需要修改
在Run Configurations配置
运行结果:
第二种方法:
还可以通过这种方式获取配置文件信息:
创建jdbc.properties在resources下
url=jdbc:mysql:///springboot
DriverClass=com.mysql.jdbc.Driver
package com.gcx.spring.SpringBoot;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource("classpath:jdbc.properties")
public class FileConfig {
}
创建JdbcConfig.java
package com.gcx.spring.SpringBoot;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class JdbcConfig {
@Value("${url}")
private String url;
@Value("${DriverClass}")
private String DriverClass;
public void show(){
System.out.println("url:"+url);
System.out.println("************");
System.out.println("DriverClass:"+DriverClass);
}
}
我们修改下App.class
package com.gcx.spring.SpringBoot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/**
* Hello world!
*
*/
@SpringBootApplication
public class App {
public static void main( String[] args ){
//ConfigurableApplicationContext context=SpringApplication.run(App.class, args);
SpringApplication app=new SpringApplication(App.class);
ConfigurableApplicationContext context = app.run(args);
context.getBean(UserConfig.class).show();
context.getBean(JdbcConfig.class).show();
context.close();
//System.out.println(context.getEnvironment().getProperty("local.ip"));
}
}
运行结果:
当然也同样可以从文件中读取
在e:/test/jdbc.properties读取
在JdbcConfig.java加上两行
在FileConfig.java加上一个注解
或者
运行结果:
第三种方法:创建一个类:DataSourceProperties.java
package com.gcx.spring.SpringBoot;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix="gcx")
public class DataSourceProperties {
private String url;
private String DriverClass;
private String username;
private String password;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClass() {
return DriverClass;
}
public void setDriverClass(String driverClass) {
DriverClass = driverClass;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void show(){
System.out.println("gcx.url:"+url);
System.out.println("gcx.DriverClass:"+DriverClass);
System.out.println("==================");
System.out.println("gcx.username:"+username);
System.out.println("gcx.password:"+password);
}
}
@ConfigurationProperties
前缀是gcx的给匹配进来
把gcx.properties还原成application.properties,添加四个配置项
运行: