jee web

在这篇文章中,我将尝试讨论基于Web的项目的各种组织结构,主要是使用JSF。 开始新项目时,首先想到的是如何组织Java包? 想象一下,您开发了一个基于Web的用户和组管理系统。 很长时间以来,我使用了以下Java包结构,该结构将Bean类与模型类分开(模型类有时称为视图助手)。

我认为这是一个不错的布局,但是如果您有大型项目,这还不够好。 为什么? 尽管某些Bean和模型类属于同一类,但它们彼此之间的距离很远。 您必须在Bean和模型包之间导航并滚动IDE。 这会占用一些时间。 多年来,我意识到根据逻辑/语义含义对类进行分组可能会更好。 这就是说,模型包和类与它们所属的bean位于同一高级包中。 常用的bean和模型类可以放在一个额外的包中,例如common。

但请注意这里。 一些开发人员更喜欢炸毁bean的数量。 如果严格遵循MVC模式,则需要支持bean,控制器bean和视图接口bean。 支持bean负责组件,值绑定和事件委托。 他们将业务逻辑的执行委托给控制器bean。 控制器Bean与基础后端系统进行通信。 对概念的这种精细调整的分离提高了小型软件的可测试性,但是它导致了很多类,并且在某些情况下会使项目的结构复杂化。

网页是什么? 这里或多或少有两种相同的方法。 第一个遵循本文中介绍的方法。 有三个主要文件夹:模板,视图和部分。 模板是在(几乎)每个页面上使用的facelets模板。 视图是整页。 它们绑定到浏览器中的URL。 视图使用模板。 部分是页面上的小块。 视图包含各节(请考虑ui:include)。 结构如下:

您还可以在此处看到一个共享文件夹,其中包含一些常用的东西。 用户和组的页面包含一个公共部分dialogs.xhtml。 它位于/ sections / shared / usergroups下面。 正如我的负责人所说,我意识到,将页面和部分组合在一起时,将它们分组是一种更好的方法。 因此,下一个结构具有两个主要的文件夹页面和模板。 节与包含它们的页面位于相同的上级文件夹中的包含之下。

现在,在IDE导航方面,该分组看起来更加高效。 同样清楚的是哪些部分属于同一部分。 在上一张图片中,您还可以看到文件夹usergroups包含子文件夹用户,组,并且在用户/组管理的上下文中,common包含在不同页面上共享的文件夹。

您首选的结构是什么? 分享你的意见。 欢迎任何反馈。

参考: 基于JEE的Web项目的结构是什么? 来自我们的JCG合作伙伴 Oleg Varaksin,来自“软件开发思想”博客。

翻译自: https://www.javacodegeeks.com/2013/11/what-is-your-structure-of-jee-based-web-projects.html

jee web

jee web_您基于JEE的Web项目的结构是什么?相关推荐

  1. 您基于JEE的Web项目的结构是什么?

    在本文中,我将主要与JSF讨论基于Web的项目的各种组织结构. 开始新项目时,首先想到的是如何组织Java包? 想象一下,您开发了一个基于Web的用户和组管理系统. 很长时间以来,我使用以下Java包 ...

  2. 基于koajs的web项目构建-心得篇

    2019独角兽企业重金招聘Python工程师标准>>> 根据 基于koajs的web项目构建-入门篇 所描述的,建立了项目的基本目录结构,接下来的工作便是编码,编译,测试,发布.做为 ...

  3. SVN基于Maven的Web项目更新,本地过程详细解释

    周围环境 MyEclipse:10.7 Maven:3.1.1 概要 最近在做项目,MyEclipse下载SVN基于上述Maven的Web问题,有时候搞了非常半天,Maven项目还是出现叉号,最后总结 ...

  4. 最全的 eclipse web 项目目录结构

    本文会尽可能对 java web 项目的目录结构做出最详细的解释,尽量做到浅显易懂. eclipse web 项目目录结构 java web 项目事例 03-springmvc-drien-xgq 是 ...

  5. 1-5Tomcat 目录结构 和 web项目目录结构

    对应我的安装路径: web项目目录结构 转载于:https://www.cnblogs.com/huiziz/p/5671612.html

  6. eclipse web 项目目录结构

    eclipse web 项目目录结构 MyWebSite 是项目名称 Java Resources >> src 是 java 源程序,也就是 java 代码 Java Resources ...

  7. IDEA热部署基于maven的web项目

    第一步:首先先创建web项目 按照向导一步一步完成项目创建,我创建的示例项目为hotdeploddemo 第二步:设置项目的web资源 下图中的路径要修改正确,指向src/main/webapp/WE ...

  8. 基于Maven构建Web项目

    1.下载Maven,并配置好环境变量 2.打开命令行窗口,输入以下命令构建Maven Web项目 mvn archetype:generate -DgroupId=com.hello -Dartifa ...

  9. linux中GIT组件,linux – 使用git和符号链接的基于组件的Web项目目录布局

    我正在计划我的 linux / apache / PHP web项目的目录结构,如下所示: 只有www.example.com/webroot/才会在apache中公开 www.example.com ...

最新文章

  1. GitHub标星14000+,阿里开源的SEATA如何应用到极致?
  2. linux压缩一个文件的命令行,linux下用命令行解压缩文件
  3. awstats 安装与配置
  4. springmvc+mybatis+spring+redis
  5. STM32_DMA 标准初始化设置解释
  6. [转]解决Windows 7下Windows Live Messenger(MSN) 9.0在一直停靠任务栏而不在系统栏显示的问题...
  7. 关于gedit的编码问题
  8. 一键重装深度linux系统下载,一键安装操作系统下载win7
  9. mac下配置环境变量
  10. 学计算机的怎样分析TCGA数据库,TCGA一些数据库
  11. clang-format代码格式化风格选项详细说明
  12. 微信小程序 开发者工具和真机调试都能正常请求访问,线上不能登录请求问题
  13. putty的使用(总结)
  14. PS 剪切图片到指定大小
  15. config server高可用的怀疑(非副本集模式)
  16. css3搜索框呼出键盘,移动端 input 输入框实现自带键盘“搜索“功能并修改X
  17. C语言编程题:用泰勒级数求自然数e的近似值
  18. 百度云下载完成后baiduyun.downloading仍然存在,下载后源文件却一直没看到
  19. egg extend ts_从 Egg.js 到 NestJS,爱码客后端选型之路
  20. asp.net动态设置CSS等

热门文章

  1. JavaFX UI控件教程(二十六)之Pagination Control
  2. Java8使用 Optional 处理 null
  3. MySQL datediff()函数
  4. Java Socket编程----通信是这样炼成的
  5. Oracle入门(十四.23)之管理触发器
  6. Oracle入门(十四.11)之使用显式游标属性
  7. 【Python】Scrapy的安装与使用
  8. 《朝花夕拾》金句摘抄(五)
  9. 关于文档的基本操作---ElasticSearch
  10. django ajax 简书,Django_ajax