如何在Java Web Application中共享相同的静态数据对象?

时间:2012-04-26 17:12:57

标签: java share

我想用Java开发一个Web浏览器游戏(使用Struts或Spring),但我有两个问题: - 你认为带有struts或spring的Java是一个不错的选择吗? (如果不是,为什么?) - 一些配置数据(如行星及其属性是不可变的)应该从数据库中加载一次并保留在所有请求共享的内存中。你对此有何看法?我应该将所有配置数据放在servlet上下文中吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

*假设你要创建一个Spring App,但还没决定是选择Struts还是SpringMVC。

我建议使用Spring MVC,主要是因为如果你要选择Spring作为容器,那么你也可以选择Spring MVC,而不是将Struts插入Spring容器。

关于属性:Config属性不是我不会存储在DB中的东西。相反,我建议你创建* .properties文件。

你可以拥有一个带有公共静态最终HashMap的类。还要使Hashmap不可修改。使用属性文件的内容填充HashMap。

当然,Spring应用程序中更好的方法是创建一个单例Spring bean,它在初始化时加载属性。

答案 1 :(得分:0)

Struts还是Spring的不错选择?是的,两者都相当成熟,拥有庞大的社区,它们是开源的(如果你需要可以查看代码),你还应该查看JSF,我个人喜欢Primefaces(JSF组件库),GWT或Eclipse RAP是其他可用选项

Servlet中的配置数据上下文:

为什么要使servlet上下文如此繁重,你应该考虑为这种情况设置一个缓存。例如,请查看EhCache

根据评论:

您甚至可以尝试创建自己的缓存来保存数据库中的数据,例如,在Map

中保存数据的Singleton类