________________初学springboot5

获取配置文件的三种方式

默认配置文件名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

posted @ 2018-07-20 18:04  637  阅读(112)  评论(0编辑  收藏  举报