首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >项目信任Java项目

项目信任Java项目
EN

Software Engineering用户
提问于 2014-10-07 07:31:19
回答 2查看 1.3K关注 0票数 1

如何用Java存储项目的信任。通常情况下,我使用*.properties将其存储在'src/main/resources/‘中。如何为开发、本地、生产环境存储项目配置的最佳方法?

我尝试使用带有以下结构的*.prop

代码语言:javascript
运行
复制
resources
|_ config
   |_local
   |_development
   |_production
   |_environment.properties

我要避免它的结构。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2014-10-07 07:59:30

在我看来,这里最好的方法是有一个内部和外部的配置。内部配置包含所有默认设置,并将包含在资源文件夹中。外部配置是与您的程序一起部署的属性文件,随后将读取该文件并重写任何默认设置。

对于测试,这是很好的,因为您已经拥有运行程序所需的一切,而不需要任何额外的配置。在生产中,您可以根据需要重写一个或多个值,而无需重写程序。有关如何加载配置的示例,请参阅下面的内容:

代码语言:javascript
运行
复制
private static Properties getConfiguration() throws IOException {
    final Properties configProperties = new Properties();

    // Attempt to read internal configuration
    InputStream configStream = null;
    try {
        configStream = Main.class.getResourceAsStream("/configuration.properties");
        if(configStream != null) {
            configProperties.load(configStream);
        }
    } finally {
        if(configStream != null) {
            configStream.close();
        }
        configStream = null;
    }

    // Attempt to read external configuration (overriding as necessary)
    try {
        final File configFile = new File("configuration.properties");
        if(configFile.isFile()) {
            configStream = new FileInputStream(configFile);

            configProperties.load(configStream);
        }
    } finally {
        if(configStream != null) {
            configStream.close();
        }
    }
    return configProperties;
}

一定要根据需要调整路径,尽管我个人更喜欢将主配置保留在我的资源类路径中和外部的一个明显位置上。

注意,根据配置中包含的信息,您可能希望有意从内部配置中排除一些信息。例如,连接到数据库的信息。在这种情况下,在测试时,您还可以自己提供包含所有缺失的数据库连接信息的外部配置。部署时,省略外部配置并为客户端创建一个新配置(最佳实践要求检查这些参数是否存在,以获得良好的度量,如果丢失,则抛出适当的异常)。

希望这能帮上忙!

票数 3
EN

Software Engineering用户

发布于 2020-07-29 12:19:49

根据我的经验,在回购中保留几个配置/应用程序属性文件是一种正常的方法,但在构建可交付的过程中删除多余的配置/应用程序属性文件。

另外,我想补充的是,最好将这两件事分开:应用程序属性和应用程序配置。

第一个应用程序可以用来保存一个内部的应用程序设置,例如:可用线程数、重试数等。应用程序属性文件是应用程序的必要部分。通常,它位于<project_name>/src/main/resources目录中。

应用程序配置更多的是客户端的东西。通常,它用于保持配置,可以/应该由客户/用户更改。换句话说,该文件通常包含与应用程序的业务逻辑相关的配置。几乎总是需要该文件,但是一些应用程序可以使用内部默认配置来提供高可用性,而不仅仅依赖于配置文件。无论是在项目根文件夹中还是在一个特殊目录:<project_name>/conf中,都可以将配置文件放入其中。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/258282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档