English 中文(简体)
java 网络应用最佳做法
原标题:java web application best practices

我试图指出开发和发布一个相当简单的网络应用程序的最佳途径,我会遇到几个问题。 我ll述了我所作的决定,因为有些地方我显然偏离了铁路。 非常感谢任何帮助!

我认为这是一个相当简单的网络应用。 它包含一对 couple豆和通常不变的静态html、 j、 c和图像。

第1号决定)我希望有一个明确而干净的释放程序,这样我就可以在当地机器上开发,然后可靠地向生产机器释放。 因此,我作出决定,将申请纳入战争档案(包括所有静态资源),以尽量减少我需要释放的单独界限和零件。 到目前为止,情况良好?

第2号决定,我希望我的当地机器上的东西尽可能与生产环境类似。 例如,在我的html中,我可以提及一个静态档案,例如。 为了让这一法典在发展中和 pro上无缝地发挥作用,我决定在我/etc/hosts在当地发展中时静态。

第3号决定)我决定利用剪辑和礼让给我一个管理和建设我项目的最佳做法环境。

因此,除了:

我每次想改变发展方面的任何东西,就像在html档案中一行一样,我必须重建整个项目,然后坐等到战火上,才能看看它是否满足我的愿望。 因此,我的问题是:

(1) 是否有办法把lip和cat子联系起来,以便我不必每次重建战争? ie正在直面我的实际工作空间,为静态档案服务?

(2) 我认为,我也许会通过使用/etc/hosts来反映生产周期来使事情变得更困难——是否有更好的方式来手工地变换陶器(相对的圆顶当然是罚款的,但是,如果你有许多子主子,即静态档案和动态材料,你必须写出全部的道路,肯定吗?)

3) 这是否真正是最佳做法? 人们如何制造东西,以便一方面平衡对自动化、包罗万象的建筑过程的要求,另一方面,能够迅速开发 j和html和html的速度和灵活性,就像人们在名录和开发过程中看到的灯塔一样? 哪些人找到工作?

感谢!

Edit: 感谢大家的伟大回应! 如果我能标出他们的一切权利,我将这样做。 这确实帮助了我。 我听说的是,最佳做法是保护开发中的网络应用结构,使其在尽可能靠近生产的环境中运行。 诸如人与人之间的差别一样,是人们在多大程度上愿意将资源热解到堆积箱中,绕过了建筑过程,以略微的速度或方便。 这具有意义。 再次感谢。

最佳回答

为了回答第1号,我建议如下:

  1. Spend some time learning maven to build your .war without eclipse. It s not that hard with the proper archetype. See here for more details: http://maven.apache.org/guides/mini/guide-webapp.html
  2. Maven can generate eclipse projects either through mvn eclipse:eclipse or by using the m2 plugin
  3. For deployment to your local machine and to production, use the maven cargo plugin. http://cargo.codehaus.org/Maven2+plugin and http://blank.jasonwhaley.com/2010/03/automated-deployment-with-cargo-drive.html

为了回答问题2,在修改你/etc/hosts档案以进行 mi生产方面没有任何错误。 仅凭快速文字,请你添加/删除这些条目,并抽取你的ns。 我完全是这样说了。 (确保通过相关环境经常清除其海滩。)

回答问题3)是,你应如何做事。 每一建筑都应形成一种单一可部署的手工艺,使你能够以一个步骤部署到任何环境。 你们需要确保你能够这样做,而没有你们的民主选举学会,并且只能把民主选举学会作为在发展阶段帮助你的工具。

问题回答

这与我在工作中必须做的事情相类似,尽管我们使用ant(现在吗?)。 另外,虽然我使用一个电离层光仪(或两个),但I refuse,作为我的建筑过程的一部分,即电子仪器。 有些人需要能够理解和调整你们的建设。

Is there a way to connect up eclipse and tomcat so that I don t have to rebuild the war each time?

(1) 我认为,你再过多地依赖你的发展信息网。 通常,我有一个安抚大楼,有两项任务:一项是“发动战争”,另一项是“更新的战 j”。 战争的建设汇集了所有法典、一揽子计划、将其部署到Tomcat并重新开始一切。 更换碎套不会重新启用服务器,它只是从我的当地档案到托马托克部署场的复印件。 无需重新启动。 大约一半。

where you have many subdomains, say one for static files and one for dynamic, you have to write out the full path, surely?

2) No way, Jose。 因此,你指的是服务器名称发生变化的任何时候,你必须重新编篡你的代码? 如果你需要支持有活力的URLs,那么你可能只是想ite弹,看一看一个框架,为你重提。 I m part to Stripes(支持动态URL重写背箱)。

其他人已经回答了你,我只想就此发表评论(我这样回答,评论太长了):

Every time I want to change anything in development, like one line in an html file, I have to rebuild the entire project and then wait for tomcat to load the war before I can see if it s what I wanted.

如果你在html档案中改变一条线,就没有必要重建整个项目。

请注意,Ialways 重建全程.war<>/em>并重新部署我的.war/em>,但这只需要两秒钟以下时间(不到二秒至三秒钟......War[真正是......war.,是一纸空档文件],而重新部署时间则不足二分之一):

  • you don t need to recompile your entire project when you simply change one line in an html file

当你改变一个.java<>/em>文档时,你可以简单地重复一个档案和再战。

我写了我自己的安塔里什(这里没有马文)的建筑档案,我已经提出一些目标。 我可以强迫进行“清洁建筑”,这种建筑应重新组合一切,但通常只是重新包装和重新部署。

您可以查到:在名录上打上一条war,即:dir1,然后修改一个.html(或一个java/.class文档),并建造一个新的war,即dir2

然后将dir1dir2进行比较:现在确定你的建筑程序,以便你能够创造第二个.war而无需再做任何事情。

Changing one .html, .java, .jsp, .css, .js /ever file andrewing a new . 战争应是一个次要问题(如果你不把厨房沉积在你的网络上,则不到两秒)。

请注意,就同一项目而言,此处的另一名开发商更喜欢“热部署”/取代在爆炸的网络应用中直接填写的档案(我更希望每次重新配置一个.war,因为我完全的再包装/再勘探用不到两秒一米的罚款)。

如果你的项目是Eclipse的动态网络应用,并适当配置了Tomcat服务器,那么你无需重建战争档案。 遵循以下指示:

1) Check out the below of how to configure tomcat server with eclipse: http://greatwebguy.com/programming/eclipse/make-eclipse-and-tomcat-play-nice-together/

(2) 采用相对途径,但不是绝对途径。

3) 如果你适当遵循上述两个步骤,那么你就有一个最佳的发展环境。

在发展过程中,你应混淆 和cat,以便不需要重建/重建。 仅修改html/cs/jsp等,可节省费用,并更新浏览器,以了解结果。

但是,在部署到生产现场之前,你应做一个清洁的全面建筑,并仔细测试。

领域:它们应当放在一个编织的档案中;dev应该有不同的编织档案。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...