`

项目中spring分层开发

阅读更多
项目中spring分层开发的总结
   来源:Jspsky  作者:Jspsky
对spring框架和开发模式进行了验证。大家有什么问题或好的建议,请回复,大家一起讨论!
一、 项目目标及完成情况
目标
 完成情况
 
技术验证和推广
 完成较好。

1. 共有7人实际参与项目开发,我们引入maven2作为构建工具,eclipse作为ide环境。大家都能在很短的时间初始化项目,并快速掌握各自需要的技术(如spring,spring mvc等)进行开发。

2. 对分层开发的模式也进行了探讨,证明它是可行的:可以各层并行开发,提高开发效率;而通过分层可以隔离关注点,使得各层开发人员可以只关注本层相关技术和接口,减轻开发人员负担,提高效率。

3. 在项目活动中碰到一些技术难点,我们将解决方案文档化,然后项目内共享,这样能在碰到同样问题时快速解决。现在还是碰到问题才解决,以后需要建立预研机制,较早发现可能出现的难点,尽早解决,避免对项目进展产生影响。

4. 平台还处于建设阶段,对项目的支持还不够,需要形成一些通用的组件。
 
过程和管理实施
 有待提高。

1. 测试1.0版已发布,目前开发1。1版,完善分页功能和采用更好的验证方式。由于对规范开发的项目周期估计不足,加上管理上的一些问题,导致项目有所延期,需要对实际的项目开发进行量化分析,确立比较准确的人员和时间计划。

2. UC文档规范和编码规范等的引入,为项目提供了较好的支持。

3. 在实施中比较缺乏必要的文档支持,如设计文档等;同时各层的接口定义也出现较多问题,导致一些开发瓶颈的出现,这都需要在正式迭代中改进。
 
系统功能
 完成较好。

1. 完成了UC文档确定的功能点,页面美观,使用方便,能给用户较好的页面体验。

2. 采用较好的面向对象设计,能提供一定的可重用性和扩展性。
 

二、展现层总结
经验与教训
1.         SpringMVC是一个简洁、标准的MVC实现,结构清晰,功能强大(主要体现在对日常WEB开发中可能遇到的各种常见问题的解决方案),有一定学习曲线,但是有其它MVC框架基础的开发人员可以较快上手;

2.         根据业务功能尽早确定接口,接口由展现层确定,由业务层实现;

3.         合理选择Controller可以减少开发工作量,前提是充分理解每种Controller的处理机制及其回调方法细节,Controller的编写更多的精力主要花在校验、出错处理上;

4.         页面工作量很大,特别是需要比较复杂javascript的页面;

5.         UI的流转设计等对于Controller的编写和业务层的接口有着很大的影响,应尽早明确,否则会产生较大的返工;

6.         展现层开发可以与业务层同步进行,推荐确定接口后,就编写业务层接口的mock实现,放在展现层的test包内,同时写单独的测试用spring配置文件;

待解决问题
1.         Controller是否应写test case,本次开发未做;

2.         如何减少校验的工作量,对于有业务逻辑的服务端校验如何实现,是否需要采用一些validator框架,如sun的JEF的validator组件,目前我们进行了研究,通过使用commons validator组件能够较方便的实现validator;

三、业务层总结
经验与教训:
1.         Spring,iBatis的应用还是很成功的,学习曲线比较平滑,好的框架好掌握;

2.         比较重视测试,编写很多测试案例,并频繁使用maven运行所有测试,使得问题能够及早发现,保证了各层能够快速成功集成

3.         对于很多问题都需要经过各层间的讨论来确定;

4.         接口由展现层定义,由业务层实现;

5.         持久层数据模型和领域模型是有区别的,但简单的情况下可以合二为一;

6.         Fa?ade模式还是很有价值的;

7.         一些开源软件的使用需要比较小心,如iBatis的null的问题等,如果处理不当会花费较多的人力物力,需要技术较强的人对开源软件花费一定时间进行源码级的研究,才能找出较好的解决方案;

8.         认识到设计的重要性,需要对前置、后置条件等进行分析;

9.         数据类型分析简单,造成数据库设计对业务层产生不良影响;

待解决问题:
1.         沟通不够,需要建立沟通渠道,是否可以有专门的场合和时间讨论项目中的进度和问题;

2.         计划不明确,对于要完成哪些功能,完成到什么程度,没有明确的定义,需要设置里程碑目标。在正式迭代开始前,要明确每次迭代的任务和目标,需要结合业务需求进行计划;

四、持久层总结
经验与教训:
1.  通过代码生成工具,能够大大提高开发效率;

2.  工具使用者要求对ibatis和sql比较了解;

3.  在使用过程中对工具进行了完善,这对正式使用工具提供了保证;

4.  与业务层的接口,应该由业务层确定,由持久层实现,而不是由持久层决定;

待解决问题:
1.  持久层的测试该如何进行,才能真的有用;

2.  一些通用功能如分页代码生成,还在开发中;

分享到:
评论

相关推荐

    在Web项目中集成Spring

    在现代Web开发中,Spring Boot简化了Spring的集成过程,通过自动配置和起步依赖,使得开发者可以更快地搭建和运行Spring应用。但不论使用哪种方式,理解Spring在Web项目中的集成原理和组件工作方式都是非常重要的。 ...

    spring实现的网上书店

    "分层很清晰"表明这个项目遵循了软件工程中的分层架构设计原则,通常包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。表现层通常由JSP(JavaServer Pages...

    数据源及分层开发下载资料

    在分层开发中,业务逻辑层(Business Logic Layer)会定义各种服务接口,实现具体的业务规则。这些服务会被控制器调用,处理用户请求。同时,为了减少数据库交互,往往会在DAO层实现数据缓存策略,如使用 Ehcache 或...

    Spring 教程开发文档

    Spring框架是Java开发中最受欢迎的轻量级框架之一,它以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)能力而著名。本教程开发文档旨在帮助初学者和有经验的...

    springboot+mybatis 分层设计

    在实际开发中,我们还需要考虑其他的设计元素,例如: - **异常处理**:使用@ControllerAdvice和@ExceptionHandler注解来统一处理全局异常。 - **验证**:使用JSR-303/JSR-349 Bean Validation进行数据校验。 - **...

    maven分层开发

    4. **父项目与子项目**:在分层开发中,常常会有一个顶层的父项目,包含所有子模块。父项目的`pom.xml`用于定义共有的属性,如版本控制、编码格式、构建插件等,子项目继承父项目,减少配置的重复。 5. **聚合与...

    spring maven mybaits spingmvc整合项目

    Spring、Maven、MyBatis和Spring MVC是Java开发中常用的四大框架,它们的整合能够构建出高效、灵活的企业级应用。本项目是基于这些技术的最新整合实践,旨在提供一个结构清晰、功能完整的开发模板。 首先,Maven是...

    spring2中文开发参考手册

    《Spring2中文开发参考手册》是一本详尽的指南,专为使用Spring框架进行软件开发的程序员设计。这本书深入探讨了Spring框架的核心概念、新特性,以及如何利用XML配置和Spring MVC来构建高效的应用程序。以下是对这些...

    Java开发spring框架包

    Spring框架是Java开发中的核心工具,它为构建高质量、可维护和可测试的应用程序提供了全面的支持。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性而...

    晾晾多年珍藏spring开发指南.pdf

    通过阅读《Spring开发指南》,读者将了解到如何在实际项目中使用Spring进行服务的创建、配置、测试,以及如何利用Spring Boot快速搭建应用,同时学习到Spring Data和Spring Security的实战技巧。 通过学习这本指南...

    SpringFramework开发参考手册CMH

    6. **Spring Boot**:虽然不是手册的直接主题,但Spring Boot是基于Spring Framework的快速开发工具,它简化了设置和配置过程,使得开发者可以更快地启动新项目。 7. **测试支持**:Spring提供了强大的测试框架,...

    Mybatis+Spring整合项目

    这不仅展示了Java开发的灵活性,也体现了Mybatis和Spring在实际项目中的强大能力。通过学习和实践这样的项目,开发者可以深入理解如何在企业级应用中有效地整合和使用这两种技术,提升自身的开发技能。

    Spring应用开发代码

    Spring框架是Java开发中最常用的轻量级框架之一,它提供了全面的编程和配置模型,极大地简化了企业级应用的开发。这个"Spring应用开发代码"集合可能是为了帮助开发者深入理解和实践Spring的核心概念。 首先,Spring...

    基于SpringCloud框架开发的商城系统

    总结来说,这个基于SpringCloud框架的商城系统展示了微服务架构在大型电商项目中的实际应用,实现了业务模块的解耦、服务的高可用和可扩展性,是Java Web开发中的一次成功实践。通过学习和研究这个项目,开发者可以...

    Spring注解开发详解 & Spring与MyBatis整合实战(彩色PPT版).pptx

    Spring是一个轻量级的Java开发框架,起源于2003年,由Rod Johnson在其著作中提出。它的主要目的是简化企业级应用的开发复杂性,通过分层架构提供集成的框架,包括Web层、Service层和DAO层。Spring的核心特性包括控制...

    《Spring Boot2.0项目开发综合实训》指导手册v1.0.pdf

    Spring Boot是一个开源的Java平台,它简化了基于Spring的应用开发过程,使开发者能够快速启动和运行Spring...同时,通过综合实训的方式,能够培养学生的实际操作能力,为解决未来实际开发中遇到的问题积累宝贵经验。

    Spring中的注解开发&Spring与Mybatis整合彩色PPT版本.pptx

    【Spring概述】 Spring是一个轻量级的Java开发框架,起源于2003年,由Rod Johnson在其著作中...通过以上知识点的学习和实践,开发者可以掌握Spring框架的核心技术和应用,从而在实际项目中更有效地使用Spring进行开发。

    spring-framework 开发所需jar包

    Spring 框架是Java开发中的一个核心框架,它提供了全面的应用程序开发模型,能够简化企业级应用的创建和维护。Spring 框架的核心设计理念是依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

    Spring MVC 开发一般步骤详述

    总结来说,Spring MVC开发的基本步骤包括:创建Web项目、配置web.xml和数据库相关文件、设置项目结构、编写各层类以及数据库设计。通过这个过程,我们可以实现一个完整的Java Web应用程序,有效地管理和控制应用程序...

Global site tag (gtag.js) - Google Analytics