当前位置: 首页 > 面试题库 >

如何设计和架构Java / Java EE Web应用程序?

穆才良
2023-03-14
问题内容

我是Java开发人员,在Struts,Spring和Hibernate上拥有近5年的经验。

几天后我们将有一个新项目。我们对我们有完整的要求,我们将使用Spring MVC,Spring和Hibernate进行此项目。

我被要求设计和架构整个Web应用程序。设计和创建建筑师是我迄今为止在职业生涯中从未做过的事情。而且我不知道该怎么做,从哪里开始,使用什么工具等等。我什至都不知道A,B,C的设计和建筑风格。

您可能想知道为什么我一开始就被要求这样做。事情是给了我这样做的机会,在每个阶段我都会受到监控,并且我的前辈将审查设计。

因此,欢迎您提出任何建议,想法和步骤以开始并继续前进。


问题答案:

我可以根据自己的经验添加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)集成,而不要编写自己的机制。这将使您不必重新发明轮子,而用户则无需记住另一组用户名和密码。


 类似资料:
  • 我的问题是 如果我有一个Jpanel,有一些JtextField和ComboBox。另一个JPanel包含保存、更新、清除和退出等按钮。 JFrame和BoarderLayout都添加了JPanel。 如果我在文本字段中写入内容并按下保存按钮,它将把数据保存到数据库中。我知道数据库的连接代码。 问题是文本面板和按钮面板之间的连接。如果我公开JTextField和JButton,我可以在JFrame

  • 前端应用架构设计 JavaScript Web 应用开发 [read][RMB] 用 React & Ampersand 构建 APP [watch][$] Human JavaScript [read] JavaScript 应用程序编程 [read] 构建现代单页应用 [watch][$] JavaScript 函数式编程 [watch][$] JavaScript: 模块 [read] We

  • 本文向大家介绍大型JavaScript应用程序架构设计模式,包括了大型JavaScript应用程序架构设计模式的使用技巧和注意事项,需要的朋友参考一下 PDF版的PPT下载地址:http://www.slideshare.net/jibyjohnc/jqquerysummit-largescale-javascript-application-architecture 注:在整理的过程中,发现作者

  • 架构设计 整个功能架构如下图所示。 包括三大组件:区块链服务(Blockchain)、链码服务(Chaincode)、成员权限管理(Membership)。 概念术语 Auditability(审计性):在一定权限和许可下,可以对链上的交易进行审计和检查。 Block(区块):代表一批得到确认的交易信息的整体,准备被共识加入到区块链中。 Blockchain(区块链):由多个区块链接而成的链表结构

  • 适用场景 最终一致 单向同步 实现依据 MQ消息顺序消费 MQ消息组内消息最多被消费一次 仅支持DML,DDL、DCL手工执行 表必须有主键、最后更新时间 系统架构 Node节点内存模型 TaskController 1---* TaskWorker TaskWorker 1---* TaskWork TaskWork 1---1 *Job 通俗上讲TaskController对应Node进程,进

  • Angel的架构设计 Angel的整体设计比较简约,层次鲜明,容易上手,没有过多复杂的设计,关注模型和机器学习相关特性,追求高维度模型下的最佳性能。它的架构设计,从整体可以分为3大模块: Parameter Server层:提供通用的参数服务器服务,负责模型的分布存储,通讯同步和协调计算,并通过PSAgent提供PS Service Worker层: 基于Angel自身模型设计的分布式运行节点,自