Spring Boot:使用database和application.properties进行配置

2023-11-23

我需要将 Spring Boot 应用程序的配置保存在数据库中。

是否可以将数据库信息存储在application.properties并使用它们连接到数据库并从那里检索所有其他属性?

So my application.properties看起来像:

spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=mydb
spring.datasource.username=user
spring.datasource.password=123456
spring.jpa.database-platform=org.hibernate.dialect.SQLServer2012Dialect

其他配置将从数据库中获取,如下所示:

@Configuration
@PropertySource(value = {"classpath:application.properties"})
public class ConfigurationPropertySource {

    private final ConfigurationRepository configurationRepository;

    @Autowired
    public ConfigurationPropertySource(ConfigurationRepository configurationRepository) {
        this.configurationRepository = configurationRepository;
    }

    public String getValue(String key) {
        ApplicationConfiguration configuration = configurationRepository.findOne(key);
        return configuration.getValue();
    }

}

With ApplicationConfiguration as an Entity.

但是 Spring Boot 不会从数据库获取配置。


您可以锻炼的一种可能的解决方案是使用可配置环境并重新加载并添加属性。

@Configuration   
public class ConfigurationPropertySource {

private ConfigurableEnvironment env;

private final ConfigurationRepository configurationRepository;

    @Autowired
    public ConfigurationPropertySource(ConfigurationRepository configurationRepository) {
        this.configurationRepository = configurationRepository;
    }

    @Autowired
    public void setConfigurableEnvironment(ConfigurableEnvironment env) {

        this.env = env;
   }

   @PostConstruct
   public void init() {
    MutablePropertySources propertySources = env.getPropertySources();
       Map myMap = new HashMap();
       //from configurationRepository get values and fill mapp
       propertySources.addFirst(new MapPropertySource("MY_MAP", myMap));
   }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot:使用database和application.properties进行配置 的相关文章

  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • 如何准确判断 double 是否为整数? [复制]

    这个问题在这里已经有答案了 具体来说 在 Java 中 我如何确定double是一个整数 为了澄清 我想知道如何确定 double 实际上不包含任何分数或小数 我主要关心的是浮点数的性质 我想到的方法 以及我通过谷歌找到的方法 基本上遵循以
  • H2数据库:如何进行加密保护,而不暴露文件加密密钥

    我们在服务器模式下使用Java H2数据库 因为我们不希望用户访问数据库文件 为了对数据库文件添加更多保护 我们计划使用 AES 加密 将 CIPHER AES 添加到数据库 URL 以防存储被盗 但是 每个用户在连接时还需要提供文件保护密
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • 对对象集合进行排序[重复]

    这个问题在这里已经有答案了 如果我有一个简单的字符串列表 List
  • 绘制平滑曲线

    我想创建更平滑的曲线 而不仅仅是线角 这是我现在画的图 这是我的代码 case FREEHAND float pts float ptk ptk new float 2 imageMatrix invert inv if mCurrentS
  • 如何自动转换十六进制代码以将其用作 Java 中的 byte[]?

    我这里有很多十六进制代码 我想将它们放入 Java 中 而不需要向每个实体附加 0x 喜欢 0102FFAB 和我必须执行以下操作 byte test 0x01 0x02 0xFF 0xAB 我有很多很长的十六进制代码 有什么办法可以自动做
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • 如何在 spring-data 中强制使用 CrudRepository 进行预加载?

    我有一个实体 其中包含List就是这样lazy默认加载 interface MyEntityRepository extends CrudRepository
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • 检查按钮是否可用?如果没有,请等待 5 秒钟,然后再次检查?

    基本上我想看看此刻是否可以单击按钮 如果没有我想再试一次 所以我需要某种 goto 函数来返回到代码的前一行 尽管我怀疑我写得非常糟糕 但它本来可以做得更容易 try driver findElement By xpath button i
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma
  • 如何使用socket.io发送图像文件(二进制数据)?

    我无法从以下位置发送数据Android Client to NodeJS Server I use Socket IO 客户端 https github com socketio socket io client java我的客户端中的ja

随机推荐

  • 执行 SQL Server 脚本

    如何自动运行给定文件夹中的所有 SQL 脚本 编写 Windows 脚本 使用FOR构建循环遍历您的文件并使用SQLCMD执行每个文件的实用程序 for f in c MySQLScripts sql do sqlcmd i f
  • 在 Android 中从文件读取/写入字符串

    我想通过从 EditText 输入的文本将文件保存到内部存储 然后我希望同一个文件以字符串形式返回输入的文本并将其保存到另一个字符串以便稍后使用 这是代码 package com omm easybalancerecharge import
  • 在gradle中重命名apk

    我想从 gradle 重命名我的 apk 我在构建中有以下几行 applicationVariants all variant gt def file variant outputFile def filename file name re
  • shared_ptr会自动释放内存吗?

    我需要在这里使用shared ptr 因为我无法更改API Foo1 foo1 new Foo1 shared ptr
  • Linux,spidev:为什么它不应该直接在设备树中?

    我想定义一个具有用户模式访问权限的 SPI 设备 如中所述http linux sunxi org SPIdev 按照这些示例 我在设备树中添加了以下内容 ecspi1 other stuff mydev 0 compatible spid
  • 在Go中用小RAM读取大文件的最快方法[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想从不同的文本或JSON or CSV文件 我应该遵循哪种方法 我有博客文章文件读取 and 使用小 RAM 读取 2 GB 文本文件文件读取的不同方法 不同的方法 分块读取文
  • 将整数集转换为范围

    将一组整数转换为一组范围的最惯用的方法是什么 例如 给定集合 0 1 2 3 4 7 8 9 11 我想得到 0 4 7 9 11 11 假设我们正在转换std set
  • 如何在WPF中使用GDI+绘图?

    我想在我的 WPF 控件中使用 GDI 绘图 有多种方法可以做到这一点 最简单的方法是锁定使用 GDI 操作的位图 获取像素缓冲区 从锁定中获取的 BitmapData 中的 Scan0 IntPtr 复制内存 从你的像素缓冲区到Write
  • 如何在 bash 中传递完整的参数列表,同时将多字参数保存在一起?

    我在 bash 变量扩展中遇到一些分词问题 我希望能够将参数列表存储在变量中并运行它 但是任何引用的多字参数都不会按照我的预期进行评估 我将用一个例子来解释我的问题 假设我有一个函数decho将每个位置参数打印在它自己的行上 bin bas
  • 如何在 LaTeX 中发出参考文献的文本内容?

    我有一个部分 section Introduction label sec introduction 我想要一个指向该部分的链接 其中链接文本是该部分的名称 我可以用hyperref The hyperrf sec introduction
  • 为什么我不应该在 PHP 中使用 mysql_* 函数?

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 不应该使用的技术原因是什么mysql 功能 例如 mysql query mysql connect or mysql rea
  • 如何在 C# 中使用正则表达式获取某个特定单词之前的数字?

    我们将使用下面的正则表达式来获取单词之前的数字 例子 838123 某个词 8 某个词 12 某个词 d s someWord 但有时数字和单词之间会出现任何内容 请参阅下面的示例行 Ex 43434 的 someword 12 任何 so
  • 如何检测 DataGridView 控件中的垂直滚动条

    在vs2008中使用winform 我有一个 DataGridView 我想检测垂直滚动条何时可见 我应该报名参加什么活动 我添加了网格最后一列中每个单元格值的求和 并在 DataGridView 底部的文本框中显示该值 我希望此文本框与单
  • 使用 Lua C API 迭代表中的表

    我正在尝试迭代 Lua 中的表并输出 每个表的键 每个表中每个条目的键 值对 这是代码 void print table lua State L lua pushnil L while lua next L 2 0 const char k
  • EXTJS 5:如何在 EXT JS 5 中对网格列进行排序

    我最近将 EXT JS 的版本更新到 5 并且 doSort 函数的覆盖不再起作用 有人有想法怎么办 覆盖示例 text Custom sortable true dataIndex customsort doSort function s
  • 在Java中删除数字中的数字[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如何删除整数的第一位数字 我的输入是一个整数 例如 i 123456789 然后我想删除第一位数字 使 i 等于 23456789 try this n n int Math pow
  • 如何找到mysql的默认服务器字符集?

    在 FreeBSD 8 2 上使用 MySQL 如何找到默认服务器字符集 是否有一些我可以运行的命令或我可以检查的文件 UPDATE 其实我想知道如何找到default服务器字符集and the current服务器字符集 正如下面记录的服
  • 使用方法级安全性处理 AccessDenied

    我有一个用 Spring Security 保护的方法 如下所示 PreAuthorize hasRole add user public void addUser User user 如果没有足够权限的用户尝试调用它 抛出 accessD
  • 修改引号的 auto_match,为 Sublime Text 2 添加额外的引号字符

    Sublime Text 2 非常有帮助地结束了我所有的引言 是否可以修改它使用的字符 例如 如果我想将 反引号 添加到列表中 skuroda 的回答效果很好 在 Mac OSX 上 请转至 Sublime Text 2 gt Prefer
  • Spring Boot:使用database和application.properties进行配置

    我需要将 Spring Boot 应用程序的配置保存在数据库中 是否可以将数据库信息存储在application properties并使用它们连接到数据库并从那里检索所有其他属性 So my application properties看