application.properties spring 引导值注入
application.properties spring boot value injection
我正在使用 spring 启动 REST API。我想在我的项目中使用 git。在文件 application.properties 中,我有数据库 Url、我不想在 git 上推送的用户名和密码。我不知道如何创建一个包含我的数据库配置的文件以及如何在 application.properties 中注入这些配置。
application.properties
## Server Properties
server.port= 5000
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url= jdbc:mysql://localhost:3306/MyApp?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username= user
spring.datasource.password= pass
首先你应该像这样将 application.properties 添加到 .ignore 文件
application.properties
如果您只是连接到数据库,则不需要手动注入值,您只需将其写入 application.properties
但是如果你想把值放在属性文件中并在应用程序中使用它
package com.microservice.test.limitservice;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties("limit-service")
public class Configuration {
private int minimum;
private int maximum;
public int getMinimum() {
return minimum;
}
public void setMinimum(int minimum) {
this.minimum = minimum;
}
public int getMaximum() {
return maximum;
}
public void setMaximum(int maximum) {
this.maximum = maximum;
}
}
以及如何简单地注入它
@Autowired
private Configuration configuration;
application.properties 文件可能是这样的
limit-service.minimum=56333445
limit-service.maximum=6500
你应该注意到它以 as example limit-service 开头
和 @ConfigurationProperties("**limit-service**")
如果您想将配置存储在 application.properties 安全的环境中
你可以看到这个 link
Spring 不仅从 application.properties 中获取配置属性,还从命令行参数、JAVA 系统属性或环境变量中获取配置属性。
在此处查看完整列表:Spring Externalized Configuration。
因此 - 作为参考 - 您可以在 application.properties 文件中保留一些默认值的属性(就像在您的示例中一样),以便让其他用户知道他们可以为您的应用程序设置什么样的属性.
但是你可以将变量作为参数传递给你的应用程序,而不是在那里设置你的真实值,比如
-Dspring.datasource.username=user -Dspring.datasource.password= pass
或者您可以将它们设置为环境变量。
您甚至可以使用不同的设置创建多个配置。如果 Spring 在当前配置中找不到变量,那么它将从 application.properties (或其他来源 - 见上文)
中获取
我正在使用 spring 启动 REST API。我想在我的项目中使用 git。在文件 application.properties 中,我有数据库 Url、我不想在 git 上推送的用户名和密码。我不知道如何创建一个包含我的数据库配置的文件以及如何在 application.properties 中注入这些配置。
application.properties
## Server Properties
server.port= 5000
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url= jdbc:mysql://localhost:3306/MyApp?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username= user
spring.datasource.password= pass
首先你应该像这样将 application.properties 添加到 .ignore 文件
application.properties
如果您只是连接到数据库,则不需要手动注入值,您只需将其写入 application.properties
但是如果你想把值放在属性文件中并在应用程序中使用它
package com.microservice.test.limitservice;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties("limit-service")
public class Configuration {
private int minimum;
private int maximum;
public int getMinimum() {
return minimum;
}
public void setMinimum(int minimum) {
this.minimum = minimum;
}
public int getMaximum() {
return maximum;
}
public void setMaximum(int maximum) {
this.maximum = maximum;
}
}
以及如何简单地注入它
@Autowired
private Configuration configuration;
application.properties 文件可能是这样的
limit-service.minimum=56333445
limit-service.maximum=6500
你应该注意到它以 as example limit-service 开头
和 @ConfigurationProperties("**limit-service**")
如果您想将配置存储在 application.properties 安全的环境中
你可以看到这个 link
Spring 不仅从 application.properties 中获取配置属性,还从命令行参数、JAVA 系统属性或环境变量中获取配置属性。
在此处查看完整列表:Spring Externalized Configuration。
因此 - 作为参考 - 您可以在 application.properties 文件中保留一些默认值的属性(就像在您的示例中一样),以便让其他用户知道他们可以为您的应用程序设置什么样的属性.
但是你可以将变量作为参数传递给你的应用程序,而不是在那里设置你的真实值,比如
-Dspring.datasource.username=user -Dspring.datasource.password= pass
或者您可以将它们设置为环境变量。
您甚至可以使用不同的设置创建多个配置。如果 Spring 在当前配置中找不到变量,那么它将从 application.properties (或其他来源 - 见上文)
中获取