使用GWT进行配置时,通常会进入您的web.xml。对开发和生产环境进行不同的设置是正常的。我知道我也可以使用我的静态html主页将参数传递给GWT。
在开发和生产之间切换配置的最佳做法是什么?
答案 0 :(得分: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代替Scriptlets。
答案 1 :(得分:0)
根据我的经验,Java应用程序中的配置通常最好通过属性文件进行管理。我可能会建议如下:
创建一个属性文件来存储此标志,例如:remoteLogging = true
在服务器端创建一个存储此类配置的类,例如带有布尔属性remoteLogging的SystemConfiguration。
在启动Web应用程序时,将属性的值注入单个SystemConfiguration bean。
在客户端,在入口点(例如Application.java)中,在onModuleLoad()中调用服务器以获取SystemConfiguration对象。
将SystemConfiguration对象保留在客户端的内存中,并在需要时检查 - 例如if(systemConfig.getRemoteLogging()) { LOG.info("foo"); }
另一条路径可能是拥有.gwt.xml文件的多个版本(可以设置remoteLogging日志级别),并让您的构建工具在每个环境中部署相应的.gwt.xml文件。这需要在每个环境中单独构建,这通常是不可取的。