gpt4 book ai didi

java - 如何在复杂项目中包含属性文件

转载 作者:行者123 更新时间:2023-12-01 06:01:04 25 4
gpt4 key购买 nike

我有一个名为 sample-parent 的后端项目,它由三个不同的项目组成

structure

其中 sample-webservice 是具有主类的服务。 backend.properties 文件包含以下信息:

server.port = 8080
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=sample
server.servlet.context-path=/sample

但是当我运行该项目时,该文件被忽略,因此我无法连接到 mongo 数据库。据我所知,我必须在 pom.xml 文件中标记 backend.properties 文件,但我不知道该怎么做,我试图找到一些指导方针但到目前为止我什么都没有。任何帮助将不胜感激。

最佳答案

Michal,据我所知,您的问题是您试图在不需要的地方加载属性值。一般来说,您最好将属性文件放入每个项目,但仅定义项目真正关心的值 - 这里您的 Web 服务应用程序不关心 MongoDB(或不应该关心)连接,因此您最好将连接放入 MongoDB并从 Web 服务中删除这些值。

无论如何,如果您需要集中属性,我强烈建议您使用 JAR/WAR 之外的属性文件,特别是如果存在密码、API key 、连接等敏感信息。为此,您可以使用像这样的 Bean 的配置(仅用于演示,不适用于生产):

public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer();
properties.setLocation(new FileSystemResource("/path/to/app-production.properties"));
properties.setIgnoreResourceNotFound(false);
return properties;}

您还可以引用 Spring 文档,了解从不同来源加载属性的优先级: externalizing props

关于java - 如何在复杂项目中包含属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58930270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com