我有Spring引导应用程序。 我想将一些值作为读取超时,调试模式放在yaml文件中,然后从Java代码读取它们。
application.yaml :
spring:
jpa:
database-platform: org.hibernate.dialect.PostgreSQLDialect
hibernate:
ddl-auto: update
show-sql: false
datasource:
url: jdbc:postgresql://localhost:5432/database_name
username: database_username
password: database_password
http:
multipart:
maxFileSize: 15Mb
maxRequestSize: 15Mb
server:
port: 8585
contextPath: /
答案 0 :(得分:2)
您可以使用spring框架提供的@Value
注释进行此操作。
这里是示例:
api:
values:
socket-timout: 20
在您的Java代码中,您可以使用以下代码获取socket-timout
的值。
@Value("${api.values.socket-timeout}")
private Integer socketTimeout;
它将自动填充值20
。您不能对静态变量执行此操作。要针对静态变量实现此目的,可以使用以下代码。
public static Integer mySocketTimeout;
@Value("${api.values.socket-timeout}")
public void setSocketTimeout(Integer socketTime){
mySocketTimeout = socketTime;
}
通过非静态设置器方法设置静态变量的值。