SpringBoot获取application配置文件中参数的三种方式
SpringBoot获取application配置文件中参数的三种方式方式1:使用@Value方式方式2:使用Environment方式方式3:@ConfigurationProperties(prefix = "") 注解application.properties中配置如下:demo.name=tomdemo.serverConfig.address=localhostdemo.serverC
·
SpringBoot获取application配置文件中参数的三种方式
application.properties中配置如下:
demo.name=tom
demo.serverConfig.address=localhost
demo.serverConfig.port=8080
demo.serverConfig.username=bob
demo.serverConfig.password=123
方式1:使用@Value方式
只能拿到一个配置参数
@RestController
public class WebController {
/**
*获取配置的参数,获取不到则使用默认值
如果不设置默认值又找不到参数,会报错
*/
@Value("${demo.name:aaa}")
private String msg;
@RequestMapping("/index1")
public String index1(){
return "方式一:"+msg;
}
public static String WORKER_RANGE_TIME = "08-20";
//注入静态
@Value("${worker.range.time:08-20}")
public void setWorkerRangeTime(String workerRangeTime) {
WORKER_RANGE_TIME = workerRangeTime;
}
}
方式2:使用Environment方式
这种方式可以拿到所有的配置参数,想使用哪个就用key获取
package Solin.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class WebController {
@Autowired
private Environment env;
@RequestMapping("/index2")
public String index2(){
return "方式二:"+env.getProperty("demo.name");
}
}
方式3:@ConfigurationProperties(prefix = “”) 注解
这种方式可以根据前缀获取对应参数。
将DemoProperties 使用@Autowired 注入到其他类,其他类就能使用了。
package com.demo.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "demo")
public class DemoProperties {
private ServerConfig serverConfig = new ServerConfig();
public ServerConfig getServerConfig() {
return serverConfig;
}
@Data
public final class ServerConfig{
private String address;
private String port;
private String username;
private String password;
}
}
或者
package com.demo.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "demo.serverConfig")
public class DemoProperties {
private String address;
private String port;
private String username;
private String password;
}
更多推荐
已为社区贡献3条内容
所有评论(0)