1.概述
技术框架选型以工业化大规模软件开发为原则---主流的选型、适宜团队分工的架构,同时照顾轻量级快速开发的需求,Java版的约定大于配置的风格。
* SpringSide 3 的进步(京山游侠)
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类中增加新的函数,而不会为每个普通HQL封装新的函数。
3.3 service - 业务逻辑层
Service层有两类对象,
一类是领域对象管理类(Entity Manager), 按领域对象划分,每个Manager类负责管理多个紧密关联的Entity的增删改查及其业务逻辑。
一类是业务服务类(Service),按业务划分,每个Server类负责一个业务脚本, 可能会访问到多种领域对象。
用Spring的Transcation annotation定义事务。 对于Hibernate Lazy load的关联对象,在性能要求不高时可使用OpenSessionInView Filter,否则在Service层完成对象的初始化操作。
3.4 web - Web MVC层
MVC框架使用Struts 2.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? 同上,还是看团队人员的分工情况。如果是每人从头到尾负责一个独立模块的可以先分模块,反之,按层进行分工并鼓励层内重用的,可以考虑先分层。
分享到:
相关推荐
《SpringSide 3.2.2 源码解析与技术深度探讨》 SpringSide 是一个基于 Spring Framework 的 Java 开发工具集,旨在简化 Spring 应用程序的开发过程,提供一套快速、现代且规范的开发实践。SpringSide 3.2.2 版本是...
SpringSide4参考手册是一份详尽的文档,涵盖了使用SpringSide4.0版本开发应用时可能会用到的各种技术组件和模块。SpringSide是一个开源的Java开发平台,它集成了Spring框架和大量实用的组件,以方便开发人员构建复杂...
《SpringSide核心库4.1.0深度解析》 SpringSide是Java开发中的一款轻量级框架,它基于Spring框架,旨在简化企业级应用的开发流程。本文将深入探讨SpringSide-core-4.1.0的核心特性,以及其在实际项目中的应用。 一...
pom.xml配置 ...mvn install:install-file -DgroupId=org.springside -DartifactId=springside-core -Dversion=4.2.2.GA -Dfile=./springside-core-4.2.2.GA.jar -Dpackaging=jar -DgeneratePom=true
《SpringSide 4.0.0.GA:JavaEE世界的春天之光》 SpringSide,一个以Spring Framework为核心,秉持Pragmatic编程理念的JavaEE应用参考实例,它旨在为开发者提供主流技术选型的示范,展示JavaEE世界中的最佳实践。这...
《深入解析springside4.2.3-GA.jar:Java开发者的宝藏库》 在Java开发领域,SpringSide框架以其高效、灵活和强大的特性深受开发者喜爱。本文将围绕springside4.2.3-GA.jar这个核心组件,探讨其在Java应用中的重要...
《SpringSide核心库4.2.2.GA详解》 SpringSide是一款基于Spring框架的开源项目,它旨在为Java开发者提供一个快速、整洁且高效的开发环境。SpringSide Core 4.2.2.GA是该项目的核心库,包含了丰富的功能和最佳实践,...
《springside开发全面讲解》是一份旨在帮助开发者深入了解并掌握springside框架的详尽教程。springside是一款基于Spring框架的轻量级开发工具集,它为Java开发提供了简洁、高效的解决方案,尤其适合中大型项目的开发...
《SpringSide:全面解析与应用》 SpringSide项目是一个基于Java的开源软件开发框架,它以Spring Framework为核心,旨在提供一套简洁、规范的项目构建和开发实践。在深入理解SpringSide之前,我们首先需要了解Spring...
《深入解析springside-core-4.1.0.GA.jar》 springside-core-4.1.0.GA.jar是一个重要的Java库,它在Java开发领域中扮演着核心角色,尤其对于那些使用Spring框架的项目。这个jar包不仅包含了springside-core-4.1.0....
《SpringSide 3.0:Java企业开发的高效框架指南》 SpringSide 3.0 是一个基于Spring框架的开源项目,旨在为Java开发者提供一套高效、简洁的开发规范和工具集。它不仅包含了Spring的核心模块,还整合了其他优秀的...
springside是一个开源的Java开发工具集,它为Spring框架提供了额外的支持和便利,使得开发者在基于Spring构建项目时能够更加高效和规范。这个"springside4-4.1.0.GA"的jar包是Springside项目的4.1.0版本的发布,GA...
SpringSide3.3.4 安装部署详解 SpringSide3.3.4 安装部署是指在计算机上安装和部署 SpringSide3.3.4 软件的过程。在这个过程中,我们需要使用 Maven 工具来生成项目模板,安装 mini-web 应用程序,并配置相应的...
### springside3.3.4使用方法与SSH整合详解 #### 一、Springside简介 Springside项目是基于Spring框架的一个应用架构示例,它提供了一套完整的开发模式来构建企业级Java Web应用程序。Springside 3.3.4版本作为一...
《SpringSide 4.1.0.GA:深入探索企业级Java开发的得力助手》 SpringSide项目,作为一个开源的Java开发框架,是许多开发者在进行企业级应用开发时的首选工具。SpringSide 4.1.0.GA版本是该项目的一个稳定版本,它在...
《SpringSide 3.3 完整版:深入解析与实战指南》 SpringSide 是一个开源的Java项目,旨在提供一套简洁、规范的Spring应用开发模板,帮助开发者快速上手Spring框架。本版本,即“springside3.3”,是专为MyEclipse...
《深入解析springside3:源码与jar剖析》 springside3是一个基于Spring框架的轻量级Java开发工具集,它旨在简化企业级应用的开发过程,提供了一套完整的构建工具、最佳实践和代码示例。在本文中,我们将深入探讨...
《SpringSide3:全方位探索Java开发的利器》 SpringSide3是Java开发领域的一个重要参考资料,它是由知名开发者Calvin创建并维护的项目,旨在为Java开发者提供一套完整的Spring框架学习与实践指南。SpringSide3不仅...
《SpringSide3-core-3.3.4:深入解析核心模块与扩展功能》 SpringSide3-core-3.3.4是SpringSide项目的一个重要版本,它是一个基于Java的轻量级开发框架,旨在简化Spring的使用,提高开发效率。这个压缩包包含了两个...
《SpringSide 4详解:构建高效Java应用的全方位指南》 SpringSide 4是一个基于Spring框架的开源项目,旨在提供一套完整的Java企业级应用开发解决方案。这个名为"springside_4jar.rar"的压缩包文件,包含了...