Spring boot项目中定义的全局变量和应用程序变量

2024-01-26

我正在尝试使用 spring 和 spring boot 开发微服务。在我的项目中,我正在将整体架构转换为面向服务的架构。项目包含 20 个微服务。我需要设置应用程序变量和全局变量。我有与此相关的困惑,我在这里添加这些困惑,

  1. 可以在 application.properties 文件中声明我的全局变量吗?如果不可能我可以在哪里定义我的全局变量?
  2. 如果我使用 spring 配置服务器进行全局配置,如何有条件地将这些属性导入到客户端项目?
  3. 我可以在配置服务器中为不同的配置文件设置不同的属性文件,并为不同的配置文件有条件地导入到客户端项目中吗?在我的例子中,每个配置文件代表不同的区域。

经过我的探索,我找到了加载全局变量和应用程序变量(包括数据库配置)问题的解决方案。我们可以使用的最好方法是 - Spring Cloud 配置服务器外部化配置。

我们可以为 Spring Cloud 配置服务器创建一个微服务。在配置服务器中,我们可以通过两种方式创建变量和配置。

  1. 来自 GIT 链接参考的配置
  2. 使用本地文件系统/环境变量。

链接参考

  1. https://cloud.spring.io/spring-cloud-config/single/spring-cloud-config.html https://cloud.spring.io/spring-cloud-config/single/spring-cloud-config.html
  2. https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.3.RELEASE/multi/multi__spring_cloud_config_server.html https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.3.RELEASE/multi/multi__spring_cloud_config_server.html
  3. https://github.com/spring-cloud/spring-cloud-config https://github.com/spring-cloud/spring-cloud-config

这里我遵循使用本地文件系统。

需要在 src/main/resources 下创建 Config 文件夹。并按照命名约定创建不同的配置文件,

db,properties 、 db-test.properties 、 db-prod.properties 、 db-dev.properties 。 我为不同的开发环境创建了例如。就像我们可以为变量和配置创建任何配置文件一样。

并在配置服务器的 application.properties 中添加以下内容

server.port=8888
spring.profiles.active=native

在配置服务器的pom.xml文件中添加配置服务器依赖,

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

将以下内容添加到主应用程序运行类中,

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

    public static void main(String[] args) {
    SpringApplication.run(ConfigServerApplication.class, args);
    }
}

并通过添加 pom.xml 依赖项来创建客户端微服务项目,

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

在 application.properties 文件中添加以下行以设置客户端从服务器接收配置,

server.port=8080
spring.application.name=db
spring.cloud.config.uri=localhost:8888

最后通过指定 profile 运行您的客户端项目,

java -jar -Dsping.profiles.active=<profile> <jar_name>.jar

提前致谢

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

Spring boot项目中定义的全局变量和应用程序变量 的相关文章

  • Java 的支持向量机?

    我想用Java编写一个 智能监视器 它可以随时发出警报detects即将到来的性能问题 我的 Java 应用程序正在以结构化格式将数据写入日志文件
  • 如何在 JPQL 或 HQL 中进行限制查询?

    在 Hibernate 3 中 有没有办法在 HQL 中执行相当于以下 MySQL 限制的操作 select from a table order by a table column desc limit 0 20 如果可能的话 我不想使用
  • Android中如何使用JNI获取设备ID?

    我想从 c 获取 IMEIJNI 我使用下面的代码 但是遇到了未能获取的错误cls 它总是返回NULL 我检查了环境和上下文 它们都没有问题 为什么我不能得到Context班级 我在网上搜索了一下 有人说我们应该使用java lang Ob
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • java inputstream 打印控制台内容

    sock new Socket www google com 80 out new BufferedOutputStream sock getOutputStream in new BufferedInputStream sock getI
  • Runtime.exec 处理包含多个空格的参数

    我怎样才能进行以下运行 public class ExecTest public static void main String args try Notice the multiple spaces in the argument Str
  • Spring Data JPA,对多对多实体的一个属性的更改错误地显示在共享它的所有其他实体上

    当我更改实体的一个属性时 使用该实体的每个其他实体也会以某种方式更改它 我有三个实体 如下所示 学生和课程之间需要有多对多的关系 课程需要和课程讲座有一对多的关系 当我通过 Transactional 更改属于特定学生的课程或课程讲座时st
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 如何在字段值无效的情况下更改 Struts2 验证错误消息?

    我在 Web 表单上使用 Struts2 验证 如果字段假设为整数或日期 则
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • 为什么\0在java中不同系统中打印不同的输出

    下面的代码在不同的系统中打印不同的输出 String s hello vsrd replace 0 System out println s 当我在我的系统中尝试时 Linux Ubuntu Netbeans 7 1 它打印 When I
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • 列表过滤器内的 Java 8 lambda 列表

    示例 JSON id 1 products id 333 status Active id 222 status Inactive id 111 status Active id 2 products id 6 status Active
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp

随机推荐

  • Javascript 模块中的变量在其外部可见吗?

    首先 我来自 NET 世界 那里有静态类 C 在 VB 中也称为模块 和实例类 您可以实例化它们 这个问题是关于 Javascript 的 我试图重新创建我已经知道的模式并创建一个模块 静态类 这是代码 var MyModule varia
  • 重用需要“resolve”参数的“ui-route”控制器

    我希望能够重复使用我的ui router 有线控制器 他们目前从以下位置接收参数ui router resolve渲染他们的模板 我可以重复使用这些控制器吗 ui router 例如 我这样做ui router controller Det
  • Python3中的mimetools.choose_boundary函数在哪里?

    我目前想在Python3中使用以下代码 但发现该函数mimetools choose boundary要弃用 如何更改代码并使其正常工作 import re from urllib request import urlopen Reques
  • Guice JPA - “此连接已关闭。”错误

    在数据库断开空闲连接或数据库关闭并备份后 我在我的网络应用程序中收到以下错误 javax persistence PersistenceException org hibernate exception JDBCConnectionExce
  • async.mapLimit 与 Promise

    我正在尝试使用 async 模块 v3 尤其是 async mapLimit 方法来提交有限数量的并行异步请求 这与以下 简化的 示例代码中的回调配合使用效果很好 async require async async mapLimit 1 2
  • 如何使用用户脚本覆盖警报功能?

    现场有这样的代码 其站点位于 LAN 上 我尝试使用 GM 禁用该警报 我正在尝试这样做 unsafeWindow alert function 但我看到警报并收到此错误 Error uncaught exception Exception
  • Python 3 网页抓取选项

    我是 Python 新手 所以如果这是一个新手问题 我很抱歉 我正在尝试构建一个涉及网络抓取的程序 我注意到 Python 3 的网络抓取模块似乎比 Python 2 x 系列少得多 Beautiful Soup mechanize 和 s
  • 如何在 Android 中为 Fragment 设置标签

    我查看了 Stackoverflow 上的所有问题 但找不到这个问题的唯一明确答案 你怎么将标签设置为Fragment这样你就可以通过以下方式检索它getFragmentManager findFragmentByTag 有人可以给出一个简
  • 保存为 .ps/.eps 时 Matplotlib 绘图失去透明度

    如果我尝试使用 ps eps 扩展名保存一些带有透明椭球体的绘图 我会遇到问题 Here s the plot saved as a png If I choose to save it as a ps eps here is what i
  • 为什么我不能在 python3 中子类化元组?

    让我们先说一下这个问题你应该使用 new 代替 init 用于子类化不可变对象 https stackoverflow com questions 399022 why cant i subclass datetime date 话虽如此
  • webGL 中的平面着色

    我正在尝试在 webgl 中实现平面着色 我知道varying顶点着色器中的关键字将对该值进行插值并将其传递给片段着色器 我正在尝试禁用插值 我发现flat关键字可以做到这一点 但似乎不能在 webgl 中使用 flat varying v
  • 从 TensorArray 到 Tensor

    给定一个具有固定大小的 TensorArray 和具有统一形状的条目 我想通过将 TensorArray 的索引维度作为常规轴来获取包含相同值的 Tensor TensorArrays 有一个名为 gather 的方法 据称它应该可以做到这
  • 意外的 gcc 警告:函数返回局部变量的地址 - 这是编译器错误吗?

    以下是最小的工作示例 好吧 实际上它是最小的非工作示例 当使用 gcc 从版本 5 0 到 9 3 编译时 它会发出以下警告 它甚至似乎只在发布版本中发出警告 02及更高 Code class A class B const A getA
  • RVM - MacPorts 不会通过代理更新

    我正在尝试使用 RVM 在我的 iMac 上安装 ruby 我首先输入以下内容 rvm list known 然后 我使用以下行定位我想要安装的版本 我遵循的指南建议使用 1 9 2 而不是基本的 1 8 7 rvm install 1 9
  • 多态对象字符串

    我没能理解多态性 以这个例子为例 Object o new String foo 我做不到 o substring 1 2 谁能向我解释这个问题 这是由于里氏替换原则 https en wikipedia org wiki Liskov s
  • 如何让 Jenkins 在检查更改时忽略某些文件?

    在CVS配置的 排除区域 中 我添加了以下内容 d o so a exe obj dll lib txt tar tar gz 所有具有上述扩展名的文件都应被忽略 然而 Jenkins 仍然基于某个文件夹 ABC 中的文件 build tx
  • 提取“$@”中最后一个参数之前的参数

    我正在尝试创建一个 Bash 脚本 它将将从命令行给出的最后一个参数提取到一个变量中以在其他地方使用 这是我正在编写的脚本 bin bash compact archive and compact file folder s eval LA
  • 删除 NSTokenFieldCell 的回调

    我有一个 NSTokenField 和 NSTokenFieldCell 代表托管对象 当我通过键入创建一个新的 NSTokenFieldCell 时 我的 NSTokenField 的委托 NSArrayController 将使用以下方
  • 使用 mysqldump 忽略 mysql 数据库备份中的“视图”

    我需要忽略数据库中的所有视图并使用 mysqldump 进行备份 目前我正在使用以下选项 ignore table view1 ignore table view2 ignore table view3 有没有什么方法可以在不指定所有 视图
  • Spring boot项目中定义的全局变量和应用程序变量

    我正在尝试使用 spring 和 spring boot 开发微服务 在我的项目中 我正在将整体架构转换为面向服务的架构 项目包含 20 个微服务 我需要设置应用程序变量和全局变量 我有与此相关的困惑 我在这里添加这些困惑 可以在 appl