我可以根据自己的经验添加2美分(尽管它更多地是关于开发最佳实践的汇编,但您可能会发现在设计应用程序时牢记它们是有用的):
- 没有一种千篇一律的设计
- 尝试使应用尽可能轻巧。
- 使用Maven / Gradle管理依赖项
- 不要过分依赖IDE。确保您的项目在没有IDE的情况下进行构建(如果使用的是maven / gradle,它将:)尝试使用IDEA,Netbeans和Eclipse打开项目。
- 对于上述技术,appfuse是一个很好的起点。
- 首先设计您的数据库/实体
- 明智而明智地使用库。不要过度使用它们。
- 不要忘记编写JUnit / TestNG(至少对于服务层而言)
- 在所有主流浏览器上测试应用程序(不仅仅是您最喜欢的浏览器:)
确定您的Web应用程序将拥有多少总用户和多少并发用户。
- 然后决定是否需要缓存。
- 您是否将使用应用服务器集群。
- 根据功能和更重要的是“您的需求”选择应用程序服务器
- 在大多数情况下,Tomcat / Jetty绝对可以
- 避免使用任何特定于应用程序服务器的API
- 即使使用休眠作为JPA实现,也要使用JPA接口/注释
- 在映射实体中的关系时要格外小心。确定哪些属性和关系将延迟加载,哪些将渴望加载
- 设计应用程序时,请牢记应用程序安全性。Spring安全性是绝佳的选择。
- 永远不要滥用HttpSession。不要在其中存储太多。
- 保持实体可序列化。强制开发人员使用toString(),hashCode()和equals()
- 从第一天起不要忘记使用版本控制
- 不要仅仅认为spring / hibernate / spring-mvc是您的最佳选择。使用至少3到4个选项创建小的概念证明。
- 尝试使用Jenkins等CI工具自动化集成/构建/部署
- 检查并调整Hibernate生成的SQL(不时)
- 不要让业务逻辑渗入视图层。讨厌jsp scriptlets?考虑速度/自由标记。JSP不是唯一的选择。
- 通过使用Spring的PropertyPlaceholderConfigurator外部化特定于环境的配置。
- 如果可能,请尝试与现有的用户身份验证机制(如LDAP / OpenID)集成,而不要编写自己的机制。这将使您不必重新发明轮子,而用户则无需记住另一组用户名和密码。



