Spring 配置文件 - svn 中的风险代码



我们正在开发一个带有 spring 框架的项目。我们正在使用 Tomcat 集群,为了进行一些真正高级的集成测试,我们在 Web 应用程序中添加了一些控制器,这些控制器允许一些不能进入生产环境的风险内容。

我们

学到的是,为了做到这一点,我们可以使用弹簧轮廓并注释风险控制器,就像

@profile("Staging")

此注释确保仅当活动配置文件为"暂存"时才创建 Bean。

叫我偏执狂,但这个有风险的代码现在驻留在我们的 svn 上,并且是项目代码的一部分。似乎最棘手的错误可能导致此代码成为生产的一部分,并允许利用者采取有风险的操作。

此外,如果某些程序员忘记注释代码肯定会到达生产环境。我们都会犯错。

此问题是否有任何缓解措施?

我会说你有点偏执。(眨眼)希望您的应用程序中也有集成测试,它们通常会设置一些环境 - 如果它们在生产环境中运行,它们可能会搞砸您的数据库,向其他系统发送消息等。你你不用担心。为什么?也许你可以用这个答案来回答你应该如何打包这些有风险的代码片段。

我的建议:将所有有风险的代码保存在一个模块中(如果您使用的是多模块构建)。不要在生产版本中包含此模块(您可以使用 maven 配置文件)

或者..让代码自己检查它是否被允许运行。也许它可以检查文件系统上是否存在仅在测试环境中创建的某个文件。

这真的取决于你担心什么。

但想想还是好的。我知道负载测试导致许多订单被放置在实际(外部)订单处理系统中的故事。

您所说的错误是将staging添加到活动配置文件列表中。是的,这很容易做到。但是,很容易从文件系统中删除文件格式化硬盘并关闭电源。所以,你的问题听起来真的是一种偏执狂...... :)

我认为问题不在于 Spring 配置文件,而在于您的开发方法。如果您不确定在某些代码中,它根本不应该在生产中。如何实现这一点?从 svn 移动到 git。并开始使用分支。每个任务都是一个分支。无一例外。必须测试每个任务。因此,您可以部署要暂存的每个分支,对其进行测试,并在确定代码正常时将其合并/变基以掌握。主服务器也应该经过测试,然后可以部署到生产环境。

在这种情况下,您不需要配置文件"暂存"。

相关内容

最新更新