SpringBoot通常在配置文件application.properties中设置属性,其实也可以在代码中写死属性,如下:
@SpringBootApplication
public class App {
@Value("${server.host:localhost}")
private String serverhost;
public static void main(String[] args) {
SpringApplication app=new SpringApplication(App.class);
Map<String,Object> map=new HashMap<>();
map.put("server.host","127.0.0.1");
app.setDefaultProperties(map);
ConfigurableApplicationContext context= app.run(args);
System.out.println(context.getBean(App.class).serverhost);
context.close();
}
}
1)上面的程序会输出:127.0.0.1
2)如果注释掉map.put("server.host","127.0.0.1");这一句,输出:localhost
3)如果在配置文件中设置server.host=192.168.1.100,则输出192.168.1.100
由此可见setDefaultProperties设置属性的级别低于application.properties