`
zhongzhihua
  • 浏览: 313246 次
  • 来自: ...
社区版块
存档分类
最新评论

架构风格简述

阅读更多

1.概述

   技术框架选型以工业化大规模软件开发为原则---主流的选型、适宜团队分工的架构,同时照顾轻量级快速开发的需求,Java版的约定大于配置的风格。

2.主要库栈

  • JDK :JDK 5.0/6.0、 UTF-8.
  • IOC container :Spring 2.5.
  • ORM :Hibernate 3.3.
  • Web :Struts 2.1、JSP 2.0、JQuery 1.3/Dojo Base 1.3.
  • Web Service :基于Apache CXF 2.2的JAX-WS/JAXB 2.0规范.
  • Security : Spring Security 2.0.

3.层次说明

3.1 entity - 领域模型层

    使用Sql First的开发模式,先设计数据库,参考DBA的意见,考虑性能而不要太片面追求OO化的表结构。

    然后纯手工编写entity与极少量的JPA annotation(约定大于配置), 也可以用hibernate-tools从数据库逆向生成后再作修改。

3.2 access - 资源访问层

    资源访问层包括对数据库、JMS、外部的WebService等的访问。

    每个领域对象对应一个DAO类,继承于通用的HibernateDao<T>,所有以该对象为查询主体的HQL语句统一定义于DAO类内。

    注意只有在需要特定的,繁琐的Hibernate API使用时,才会在DAO类中增加新的函数,而不会为可直接使用find函数查询的普通HQL封装新的函数。

3.3 service - 业务逻辑层

    Service层有两类对象,

    一类是领域对象管理类(Entity Manager), 按领域对象划分,每个Manager类负责管理多个紧密关联的Entity的增删改查及其业务逻辑。

    一类是业务服务类(Service),按业务划分,每个服务类可能会访问到多种领域对象。

    用Spring的Transcation annotation定义事务。 对于Hibernate Lazy load的关联对象,在性能要求不高时可使用OpenSessionInView Filter,否则在Service层完成对象的初始化操作。

3.4 web - Web MVC层

    MVC框架使用Struts2.1 这一老牌传统MVC框架 + Convention Plugin 实现零配置文件,每个Action实现一组页面操作。

    View模板用JSP2.0 , 尽量使用纯html+JSP2.0 EL展示页面。

    Javascript与Ajax使用JQuery或Dojo Base,视乎项目中的JS使用是否繁重.

3.5 ws - WebService接口

    使用Java first的开发模式,通过JSR181 annotation标注Web Service接口,用JAXB-2.0 annotation标注Java-XML Mapping。

    用DTO类实现Entity与外系统的解耦,用WSResult包裹返回结果与返回码,不使用Exception返回错误。

3.6 security - 安全控制

     用户-角色-授权三层控制,使用Spring Security Filter 拦截URL,使用Spirng Security的taglib 拦截页面内容。

3.7 测试

   dao层测试OR mapping与特别SQL,特别数据库操作,使用集成测试测试实际数据库,基于Spring的集成测试Context,使用DBUnit准备数据。

   manager/service类测试业务逻辑, 可使用连接实际数据库也以使用MockObject屏蔽dao层。

   功能测试使用selenium测试主要用户故事的主流程及Javascript的效果.

4.常见问题

4.1 什么时候使用基于接口编程 ?

      基于接口编程、Fascade层等等抽象封装都是有开发和维护的代价的,是否使用归根结底还是看在团队人员的分工情况,在大家不得不依赖这几项技术来解决相互的接口、契约问题时,自然就用了。

4.2 Package是先分层还是先分模块

     org.springside.模块A.web 还是 org.springside.web.模块A? 同上,还是看团队人员的分工情况。如果是每人从头到尾负责一个独立模块的可以先分模块,反之,按层进行分工并鼓励层内重用的,可以考虑先分层。

分享到:
评论

相关推荐

    云宠架构篇1

    最后,文章还简述了运行时注解和编译时注解技术的应用,如ButterKnife和Dagger。 综上所述,云宠APP的架构设计着重于组件化开发和基础库的构建,旨在提高开发效率和维护性,同时充分利用各种技术如网络库、数据存储...

    DSS的开发设计简述.pptx

    【DSS开发设计简述】 决策支持系统(DSS)是一种关键的技术工具,旨在辅助决策者在复杂的商业环境中做出更好的决策。DSS的开发设计强调实用性,以满足决策过程的需求和决策者的特性。 **系统分析** DSS的系统分析...

    暗黑风格-图解网络-小林coding-v2.0.rar

    10. **互联网架构**:简述互联网的层级结构,包括边缘网络和核心网络,以及ISP(Internet Service Provider)的角色。 11. **云计算与物联网**:讲解云计算的基本概念,如IaaS、PaaS、SaaS,以及物联网(IoT)的...

    工业类企业宣传片架构阐述.ppt

    - **企业发展概况**:简述企业的发展历程,展示其在行业内的演变和成就。 - **企业技术与实力**:强调科技创新,展示企业的技术专利和硬实力,如研发投入、品牌影响力、产业链运营等。 - **企业产品与服务**:...

    程序员简历参考—单页单色风格17.zip

    2. **项目经验**:列举3-5个具有代表性的项目,简述项目目标、所使用的技术栈、在项目中的角色以及取得的成果。例如,参与了一个基于微服务架构的电商平台开发,使用了Spring Cloud,实现了高并发和稳定性能。 3. *...

    程序员简历参考—单页单色风格108.zip

    简述项目目标、实现的技术解决方案以及项目的成果,以体现你的问题解决能力和团队合作精神。 教育背景部分,如实填写你的学历、专业以及所获奖项或荣誉。如果你有相关的在线课程或认证(如AWS Certified Developer...

    框架完整学术风格论文答辩毕业论文PPT.rar

    描述中再次强调了“框架完整学术风格”,这意味着这份PPT模板注重的是整体的组织架构和专业展示,适用于学生在毕业答辩时展示自己的研究成果。在答辩过程中,一份结构清晰、内容充实且设计得体的PPT可以帮助演讲者更...

    《软件体系结构课程》试卷A及答案.docx

    - **架构风格**描述了一类系统的通用结构和行为特征; - **框架**是一种预先设计好的、用于构建应用程序的基础结构,通常包含了一组预先编写好的代码; - **设计模式**则是解决特定问题的一套通用方案。 4. **在...

    如何架构以及精细设计一个(企业培训必备教程).pptx

    以下是一些关于如何架构和精细设计企业培训PPT的知识点: 1. **内容结构与重点**: - 开场(10%):包括自我介绍和对演示文稿的目的与日程的简述,帮助建立与观众的联系。 - 现状描述(30%):清楚地阐述当前状况...

    商务风格 (18).pptx

    10. **组织架构**:描绘公司内部的管理结构和各部门职能,体现公司运营效率。 11. **项目成员**:列出参与项目的核心人员及其职责,体现团队实力。 12. **核心成员**:详细介绍关键领导者的背景和贡献,强化团队...

    程序员简历模板-单页单色风格11.zip

    4. **项目经验**:突出项目经验时,不仅要列出项目名称、日期和使用的技术,还应简述项目的业务目标、你在项目中的角色以及取得的具体成果。这有助于雇主了解你的实际操作能力和解决问题的能力。 5. **教育背景**:...

    程序员简历模板—单页单色风格115.zip

    7. **个人优势**:简述你的个人特质,如快速学习能力、团队合作精神、解决问题的能力等,这些都能帮助你在众多候选人中脱颖而出。 8. **参考与推荐**:如果有前任雇主或导师愿意为你提供推荐,可以在此部分列出。...

    清新风格商业计划书-绿-PPT模板.pptx

    在这个部分,你可以简述你的产品或服务、市场定位、竞争优势以及预期的业务成果。 2. **产品/服务**:这部分详细介绍你的产品或服务,包括功能、特点、如何满足市场需求以及相对于竞品的优势。模版提供了多页空间,...

    程序员英文简历参考—单页单色风格43.zip

    2. **简介或职业目标**:用一到两句话简述自己的职业定位和求职意向,例如“寻求一份Java开发职位,专注于分布式系统和微服务架构”。 3. **技能列表**:列出你的编程语言、框架、工具和技术专长。例如,Java、...

    现代 Web 应用程序的体系结构

    3. **RESTful API**:后端通常以REST(Representational State Transfer)风格设计API,允许前端通过HTTP协议获取和更新资源。这促进了前后端解耦,并支持跨平台访问。 4. **状态管理**:随着应用复杂性的增加,...

    2021蓝色手绘风格工作计划总结PPT模板.pptx

    例如,在产品介绍部分,可以将1-3或2-2作为产品特性展示,2-4或3-1作为产品优势和市场定位,3-2则可用来解释产品的技术架构或工作原理。 在介绍IT产品时,使用流程图、原型截图或用户界面设计可以帮助观众更好地...

    欧美风格 (48).pptx

    - 项目背景:简述项目的起源,为什么启动这个项目,以及它在当前市场环境中的定位。 - 项目目标:明确项目的主要目标,包括短期和长期目标。 - 商业模式:解释项目如何盈利,包括收入来源和成本结构。 - 团队介绍:...

    12540 企业文化-企业文化简述(PPT 8页).ppt

    制度文化层涉及企业的领导体制、组织架构和管理制度,是企业运行的规则基础。精神文化层则是企业文化的核心,包括企业精神、经营哲学、道德规范和价值观念,它对企业成员的行为和思想产生深远影响。 企业文化具有...

    程序员英文简历模板—单页单色风格29.zip

    8. **个人特质**:简述你的职业态度、团队合作能力和解决问题的能力,如“自我驱动,善于团队协作,具有良好的问题解决技巧”。 9. **语言能力**:如果你的英语水平达到了能够流利沟通的程度,应注明(如CET-6、...

    项目策划iOS风格黑白灰PPT模板 .pdf打包整理.zip

    5. **技术实现**:概述技术架构,开发平台,编程语言,以及可能面临的挑战。 6. **时间表**:制定项目进度,包括各个阶段的开始和结束日期。 7. **预算**:估算开发成本,包括人力、硬件、软件和营销费用。 8. **...

Global site tag (gtag.js) - Google Analytics