springboot(三)配置文件

时间:2022-09-30 20:32:26

springBoot为了更好的快速的启动和运行,遵行优先于配置的原则,其中springBoot默认加载src/main/Java/resources目录下application.properties或者application.yml,二者等价。

一:@Value读取配置文件
在application.properties新增 :

#运用名称
spring.application.name=spring-boot-demo
#端口号
server.port=9090
#@Value测试
value-word=Greetings from Spring Boot!

新建ConfigConctroller.java:

@RestController
public class ConfigController {
//获取配置文件的value-word值,没有则默认test
@Value("${value-word:test}")
String words;

@GetMapping("")
public Object index() {
return words;
}
}

浏览器访问:http://localhost:9090
springboot(三)配置文件

二:@ConfigurationProperties读取多前缀值
修改配置文件application.properties:

#运用名称
spring.application.name=spring-boot-demo
#服务器端口
server.port=9090
#@Value测试
value-word=Greetings from Spring Boot!
#ConfigurationProperties读取多前缀值
user.name=dy_bom
user.age=${random.int(30)}
user.uuid=${random.uuid}
hello.word=Hi,${user.name}!

新建ConfigController.java

@RestController
public class ConfigController {
@Autowired
UserBean userBean;

@Value("${value-word:test}")
String words;

@Value("${hello.word:test}")
String hello;

@GetMapping("")
public Object index() {
return words;
}

@GetMapping("user_info")
public Object getUserInfo(){
return hello+"your message:"+userBean.toString();
}
}

新建userBean:

@ConfigurationProperties(prefix = "user")
@Component
@Data
public class UserBean {
private String uuid;
private String name ;
private int age;

@Override
public String toString() {
return "UserBean{" +
"uuid=" + uuid +
", name='" + name + '\'' +
", age=" + age +
'}';
}

浏览器访问:http://localhost:9090/user_info
springboot(三)配置文件

三:读取其他配置文件,如自定义等
我们在resources目录下新建目录config,然后新增配置文件user-test.properties,结构如图:
springboot(三)配置文件
user-test.properties:

request.url=http://www.baidu.com

控制器代码如下:

@RestController
@PropertySource(value = "classpath:config/user-test.properties")
@ConfigurationProperties(prefix = "request")
@Data
public class ConfigController {

private String url;

@GetMapping("req_url")
public Object getUrl(){
return url;
}
}

浏览器访问:http://localhost:9090/req_url
springboot(三)配置文件

四:利用application.properties多环境*切换
我们知道,springBoot默认加载配置文件,application.properties,我们可以根据我们的环境构建其他配置文件applilcation.-.properties如:application-dev.proerties等.
application-dev.properties我们把端口修改一下:

server.port=9091

spring boot设置多配置文件很简单,可以在启动的时候加上:

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setAdditionalProfiles("dev");
app.run(args);
}
}

浏览器访问:http://localhost:9091/
springboot(三)配置文件
可见,环境切换成功,
你也可以在通过命令行执行的时候指定配置文件,其他不变,命令如下:

java -jar XXX.jar --spring.profiles.active=dev