gpt4 book ai didi

java - 在web项目中以开发模式运行

转载 作者:行者123 更新时间:2023-11-29 07:54:22 24 4
gpt4 key购买 nike

我有一个基于 maven 构建工具的 Spring MVC 项目。在我的应用程序中,我必须对外部服务器进行 Web 服务调用以获取某些数据。我已经实现了它并且一切正常。

但是在开发模式下,我宁愿要避开它们。所以目前我有

public static boolean devel = false

我将上面的 boolean 值与 if else 语句一起使用,以便如果在开发模式下,则提供静态数据。如果不是开发模式,则进行网络服务调用。

但我发现这个 boolean 声明很脏。从某种意义上说,每次在生产中部署代码时,我都必须手动更正代码中的 boolean 值。一旦我忘记了那造成的破坏。

有什么好办法吗?我不想在代码中声明这个变量,而是从构建过程中获得的一些常量或可能是一些 VM 参数。或者它们甚至可能是更好的方法。如果是这样,我如何将它合并到我的 spring-maven 项目中。

最佳答案

我要做的是让代码默认为生产行为,例如让 bool devel 来自属性文件。类路径中的默认值 = false 和为了覆盖它,我会使用类似的东西:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:config.properties</value>
<value>${external-config}</value>
</list>
</property>
</bean>

在我的开发机器上运行我的应用程序

-Dexternal-config=file:/c:/debug.properties

该属性文件包含一些占位符,这些占位符覆盖存储在 jar/war 中的 config.properties 中的值

关于java - 在web项目中以开发模式运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824198/

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