【问题标题】:Best Practice for switching Configuration for Development and Production in GWT?在 GWT 中切换开发和生产配置的最佳实践?
【发布时间】:2014-05-15 06:09:58
【问题描述】:

当使用GWT 进行配置时,通常进入你的web.xml。开发环境和生产环境有不同的设置是正常的。我知道我也可以使用我的静态 html 主机页面将参数传递给 GWT。

在开发和生产之间切换配置的最佳做法是什么?

【问题讨论】:

  • 为什么需要切换配置?
  • @AndreiVolgin 例如,如果我想在生产环境中禁用远程登录。
  • 你看过了吗:gwtproject.org/doc/latest/…
  • @AndreiVolgin 我知道所有这些东西,我可以在我的 web.xml 中禁用它。我要做的是将我的静态 html 中的参数传递给 gwt 以启用 dev 或 prod 模式。

标签: java javascript html gwt


【解决方案1】:

只需为每个环境创建多个属性文件,以存储环境特定设置。

请查看以下帖子以在服务器启动时读取属性文件。


编辑

我想在我的静态 html 文件中写一个属性,它将被 gwt 读取。如果属性是 dev gwt 应该加载 test1.gwt.xml 如果属性是 prod gwt 应该加载 test2.gwt.xml

编写在欢迎文件 (index.jsp) 中的示例代码。

<!-- Read environment attribute from application -->
<% String evn = application.getAttribute("env"); %>

<% if("prod".equalsIgnoreCase(env)) { %>
    <script type="text/javascript"
             src="myproject/test2.nocache.js"></script>
<% } else { %>
    <script type="text/javascript"
             src="myproject/test1.nocache.js"></script>
<% } %>

注意:您可以使用JavaServer Pages Standard Tag Library 代替Scriptlet。

【讨论】:

  • 这个答案与我的问题无关。我想切换配置而不是远程记录。
  • 你说的是什么配置?它是否存储在属性文件中的某个位置?应用中做了哪些配置?
  • 我想在我的静态 html 文件中写一个属性,它将被 gwt 读取。如果属性是“dev”,gwt 应该加载 test1.gwt.xml 如果属性是“prod”,gwt 应该加载 test2.gwt.xml。
  • 我已根据您的要求更新了我的答案。如果仍然需要任何更改,请告诉我。
  • 如何检查 gwt.xml 文件中的属性?
【解决方案2】:

根据我的经验,Java 应用程序中的配置通常最好通过属性文件进行管理。我可能会提出以下建议:

  1. 创建一个属性文件来存储这个标志,例如:remoteLogging=true

  2. 在服务器端创建一个存储此类配置的类,例如具有布尔属性 remoteLogging 的 SystemConfiguration。

  3. 在 Web 应用程序启动时,将属性值注入单例 SystemConfiguration bean。

  4. 在客户端,在您的入口点(例如 Application.java)中,在 onModuleLoad() 中调用服务器以获取 SystemConfiguration 对象。

  5. 将 SystemConfiguration 对象保存在客户端的内存中,并在需要时检查 - 例如 if(systemConfig.getRemoteLogging()) { LOG.info("foo"); }

另一个方法可能是拥有多个版本的 .gwt.xml 文件(可以在其中设置 remoteLogging 日志级别),并让您的构建工具为每个环境部署适当的 .gwt.xml 文件。但是,这需要为每个环境单独构建,这通常是不可取的。

【讨论】:

  • 如何检查 gwt.xml 文件中的属性?
  • 你不能。如果您的 .gwt.xml 文件需要具有依赖于环境的配置(例如 PROD、TEST 等),那么我相信您需要为每个环境拥有这些 .gwt.xml 文件的多个版本,并进行单独的构建每个环境。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多