当前位置: 首页 > 知识库问答 >
问题:

应用属性spring boot值注入

暴德运
2023-03-14

我正在使用spring boot开发REST API。我想在我的项目中使用git。在文件应用程序中。属性我有数据库Url、用户名和密码,我不想在git上推送它们。我不知道如何创建包含数据库配置的文件,以及如何将这些配置注入应用程序。属性。

应用属性

## 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

共有2个答案

邴星洲
2023-03-14

首先,您应该像这样将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;

应用程序。属性文件可以如下所示

limit-service.minimum=56333445
limit-service.maximum=6500

您应该注意到,它以limit service和ConfigurationProperties(“limit service**”)为例开始

如果您想在应用程序中存储配置。属性安全您可以看到这个链接Spring Boot如何在属性文件中隐藏密码

曹鸿风
2023-03-14

Spring不仅从应用程序中获取配置属性。属性,也可以来自命令行参数、JAVA系统属性或环境变量。

请参阅此处的完整列表:Spring外部化配置。

因此,作为参考,您可以在应用程序中保留这些属性。属性文件中包含一些默认值(如您的示例中所示),以便其他用户知道他们可以为您的应用程序设置什么类型的属性。

但是,您可以将变量作为参数传递给您的应用程序,而不是在那里设置您的真实值,例如

-Dspring.datasource.username=user -Dspring.datasource.password= pass

也可以将其设置为环境变量。

您甚至可以使用不同的设置创建多个配置。如果Spring在当前配置中找不到变量,那么它将从应用程序中获取它。属性(或其他来源-见上文)

 类似资料:
  • 在我的microservice Spring Boot项目中,我用@ResponseStatus注释了这个自定义异常: 它工作得很好:当引发异常时,我的控制器返回指定的状态(404),但原因没有得到解决(错误消息是“${message.custom.notFound}”)。 您知道是否有方法将属性文件中的属性注入到此注释中吗? 提前感谢

  • 我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?

  • 主要内容:1.xml方式的属性赋值,2.@Value注解,3.PropertySource1.xml方式的属性赋值 2.@Value注解 Person.java 这里的第一个@Value是直接赋值 第二个是通过简单的计算算出来的 测试: 3.PropertySource 通过外部文件赋值 在配置类中需要添加@PropertySource注解 指定外部文件的位置 测试:

  • 我有以下课程: 我从控制器调用方法test(): 然而,spring并没有注入构建。版本值,即使类具有组件注释。 我在控制器中使用相同的属性,它工作正常。 我做错了什么?

  • 我试图向自定义注释中注入一个值,但Spring似乎没有进行评估。

  • 我有一个处理jwt创建的类: 并从resources文件夹中的属性文件中获取jwtSecret和jwtExpirationInMs。 我的单元测试如下所示: