描述您用于Java Web应用程序的体系结构?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 让我们分享基于Java的Web应用程序体系结构! Web应用程序有许多不同的体系结构,这些体系结构将使用Java来实现。这个问题的答案可以用作各种Web应用程序设计的库,各有其优缺点。虽然我意识到答案将是主观的,但让我们尝试尽可能客观,并激发我们列出的利弊。 使用您喜欢的详细信息级别来描述您的体系结构。为了使您的答案具有任何价值,您至少必须描述所描述的体系结构中使用的主要技术和思想。最后但并非最不重要的一点,我们什么时候应该使用您的体系结构? 我开始... 体系结构概述 我们使用基于Sun的开放标准(如Java EE,Java Persistence API,Servlet和Java Server Pages)的三层体系结构。 坚持不懈 商业 介绍 层之间可能的通信流由以下方式表示: Persistence <-> Business <-> Presentation 例如,这意味着表示层从不调用或执行持久性操作,而是始终通过业务层进行操作。该体系结构旨在满足高可用性Web应用程序的需求。 坚持不懈 执行创建,读取,更新和删除(CRUD)持久性操作。在本例中,我们正在使用(Java Persistence API)JPA,并且当前使用Hibernate作为持久性提供程序,并使用其EntityManager。 该层分为多个类别,其中有某种类型的实体的每一类交易(涉及到购物车即实体可能是由一个单独的持久类得到处理),并使用一个且只有一个经理。 此外,该层还存储JPA实体哪些是喜欢的东西Account,ShoppingCart等等。 商业 与Web应用程序功能相关的所有逻辑均位于此层。此功能可能是为希望使用其信用卡在线购买产品的客户启动汇款。也可能是在基于网络的游戏中创建新用户,删除用户或计算战斗结果。 该层分为多个类,每个类都带有注释,@Stateless以成为无状态会话Bean(SLSB)。每个SLSB都称为管理器,例如,管理器可以是注释为的类,称为AccountManager。 当AccountManager需要执行CRUD操作时,它将对实例进行适当的调用,该实例AccountManagerPersistence是持久层中的类。两种方法的大致草图AccountManager可能是: ... public void makeExpiredAccountsInactive() { AccountManagerPersistence amp = new AccountManagerPersistence(...) // Calls persistence layer List<Account> …