获取配置文件的三种方式
默认配置文件名application.properties application.yml
@SpringBootApplication
public class App {
public static void main(String[] args) {
ConfigurableApplicationContext context=SpringApplication.run(App.class, args);
//方法1: 直接使用AppicationContext.getEnvironment System.out.println(context.getEnvironment().getProperty("local.ip"));
context.getBean(UserConfig.class).show();
context.close();
}
}
@Component
public class UserConfig {
//方法3:注解获取
@Value("${local.port}")
private String localPort;
//方法2: 在配置类中注入Environment 使用.getProperties调用
@Autowired
private Environment env;
public void show() {
System.out.println("local.ip:"+env.getProperty("local.ip"));
System.out.println("local.port:"+localPort);
}
}
获取配置文件路径的三种方式
1、修改runconfigurations arguments
配置文件的默认名为application.properties
默认位置classpath:/跟目录,或者class path:/config 或者file:/ 或者file:/config
默认的配置文件名字可以使用--spring.config.name 来指定 扩展名可以省略】
默认的配置文件路径可以使用spring.config.location来指定 配置文件需要指定全路径,包括目录和文件名,多个用逗号隔开
文件的指定方式有两种:1、classpath: 2、file:
2 、配置类注明
@Configuration
@PropertySources({@PropertySource("classpath:conf/app.properties"),@PropertySource("file:/users/qiqi/desktop/abc.properties")
})
public class FileConfig {
⚠️注意不用注解依赖注入就要给bean生成getter 喝setter方法
@Component
@ConfigurationProperties(prefix="app")//可以给要获取的信息加前后缀,也可以给定路径 location=“”
public class DatasourceProperties {
private String ip;
private String port;
private String name;
public void show() {
System.out.println("app.ip:"+ip);
System.out.println("app.port:"+port);
System.out.println("app.name:"+name);
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
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;
}
}
支持数组集合
配置方式name[index]=value
@Component
@ConfigurationProperties(prefix="app")
public class TomcatProperties {
private List<String> pp=new ArrayList<>();
public List<String> getPp() {
return pp;
}
public void setPp(List<String> pp) {
this.pp = pp;
}
@Override
public String toString() {
return "TomcatProperties [pp=" + pp + "]";
}
}
//application.properties 修改端口跟配置
server.port=8088
server.servlet-path=*.html
logging.level.org.springframework=DEBUG