`
vv_1024
  • 浏览: 111652 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

给springside一剂强心剂,重新点燃SSH架构的热情 2

    博客分类:
  • J2EE
阅读更多
接上一篇<a href="http://lovephoenix.iteye.com/admin/blogs/591383">给springside一剂强心剂,重新点燃SSH架构的热情 1</a>

下面讲讲使用的方法。

使用这套系统,我们首先把所有的注意力都集中在领域模型的建立上面,这里对POJO对象进行了扩展,这得益于 java 的 annotation,代码生成器提供了许多用于构建特定业务的注解,只要在pojo对象上打上 annotation 注解,代码生成器就会结合模板构建 annotation,对于持久化的 JPA 注解,代码生成器目前已经支持解析"单向双向关系的一对多,多对一及自身一对多",其中还包括 @MappedSuperclass @Transient 等注解。

代码生成器提供的注解有
@EHtmlTag
@HtmlTag
@JspPageName
@LazyGenerator
@ManyToManyValueByJsp
@ManyToOneValueByJsp
.......

比如 建立一个附件抽象类 Accessory


注意其中的 @HtmlTag(value=EHtmlTag.file) 注解
只要在字段上打上此注解,在生成的jsp页面中 就不会<input type="text">方式出现,而是作为一个上传附件组建的整体出现,这些属性都会在后台获取信息,并持久化到数据库中。

而上面的附件抽象类 Accessory 作为上传组建的标准,用户可以直接使用,如果系统中需要有作为附件上传的地方,用户只要新建一个类继承这个抽象组建即可,非常方便。

再看看长文本字段text的使用

只要打上 @HtmlTag(value=EHtmlTag.textarea) 标签 在生成的jsp页面中就会出现多行文本框。


有人说在pojo类中加入了太多的注解,代码可读性就会下降很多,也影响代码重用。
所以我在转换机制中加入了xml文件。把领域模型转换为xml文件,很多扩展属性都可以在xml文件中设置,

生成的xml文件格式如下:



然后代码生成器读取xml文件,再根据自己编写的模板结构自动合成,生成源代码。

在这种机制下完全可以通过修改配置文件,和模板文件,来生成不同架构的java程序,甚至可以运用到其他编程语言的领域,其实最复杂的就是前台界面,前台界面直接影响用户体验,这里不是代码生成器能解决的地方了,在rails中,最终页面也需要开发人员的干预,代码生成器最大限度的做到在重复性代码中减少开发人员输入的代码量。

待续...
  • 大小: 26.6 KB
  • 大小: 5.3 KB
  • 大小: 21.3 KB
6
1
分享到:
评论
8 楼 faylai 2010-02-20  
支持一下
7 楼 vv_1024 2010-02-19  
amonlei 写道
model给污染了


可以用xml文件配置,所以提供了两套方案,xml和领域模型可以相互转换
6 楼 amonlei 2010-02-11  
model给污染了
5 楼 vv_1024 2010-02-10  
这个代码生成器只是工具,不是框架,文章中代码演示生成的springside框架源码,是提供了springside相匹配的模板。领域模型凌驾于编程语言之上,模板可以任意修改,不局限于J2EE,完全可以生成其它编程语言的项目骨架。
4 楼 xtlincong 2010-02-10  
做这个轮子之前先看openxava
3 楼 vv_1024 2010-02-10  
我也考虑到这个问题,所以在转换的时候是 领域模型 -> xml配置文件 -> 修改xml配置文件 -> 解析xml 生成项目源码。领域模型中的 annotation 和 xml 属性是一一对应的,可以不使用annotation,而直接在 xml 中设置,两种方式都可选,当然项目生成以后,annotation 和 xml 都是可以删除的。

楼上的方法也很不错,多多交流,谢谢!
2 楼 fanfq 2010-02-10  
建模后直接反向工程。
1 楼 ynstudio 2010-02-09  
我们也做了一个类似的东东,不过我们不是写的annotation,而是直接使用的javadoc。类似如下,因为使用annotation的话,当你重构你的annotation时,麻烦就大了。
	/**
	 * 告警类别。
	 * @Editor --表示编辑页面如何做
	 * type="optionSelect"
	 * groupId="alarmType"
	 * @SearchItem --表示本字段用作查询条件
	 * displayType="optionSelect"
	 * groupId="alarmType"
	 * @return
	 */
	public String getAlarmType() {
		return alarmType;
	}

我们做成了一个eclipse插件,执行后,CRUD的代码,包括配置文件都生成了,编译后,CRUD的界面可以直接操作。可以省去不少机械劳动,但没有做的很复杂。

相关推荐

    springside3与传统ssh区别

    ### Springside3与传统SSH(Struts + Spring + Hibernate)的区别 #### 1. 数据库设计 在数据库设计方面,Springside3采用了一种更为现代化的方法,这体现在其对实体对象、DAO对象的设计上。它更加侧重于利用Java ...

    springside3.3.4 使用方法

    Springside项目是基于Spring框架的一个应用架构示例,它提供了一套完整的开发模式来构建企业级Java Web应用程序。Springside 3.3.4版本作为一个成熟的发布版,不仅集成了Spring框架的核心功能,还提供了对其他开源...

    springside-3.2.2源码

    通过对 Springside 3.2.2 源码的深入学习,开发者可以掌握基于 Spring 的企业级应用开发技术,理解模块化设计、MVC 架构、依赖注入等核心概念,同时也能了解到项目管理和自动化构建的最佳实践。这将有助于提升开发者...

    SpringSide4 参考手册

    SpringSide4参考手册是一份详尽的文档,涵盖了使用SpringSide4.0版本开发应用时可能会用到的各种技术组件和模块。SpringSide是一个开源的Java开发平台,它集成了Spring框架和大量实用的组件,以方便开发人员构建复杂...

    springside3.3完整版

    "ssh3.3"这个文件名暗示了SpringSide 3.3可能集成了Struts2、Hibernate和Spring,也就是常说的SSH框架。这三个框架的整合能够实现高效的MVC开发,Struts2处理请求和展示视图,Hibernate负责持久化操作,Spring则...

    springside3.0.zip

    2. **Maven集成**:SpringSide 3.0 使用Maven作为构建工具,提供了标准的项目结构和配置,使得项目的构建、依赖管理和部署变得更加简单。通过Maven的POM.xml文件,开发者可以轻松管理项目的所有依赖库。 3. **...

    springside的一个应用实例

    SpringSide是基于Spring框架的一个轻量级、模块化、规范化的开发工具集,旨在提供一种快速、高效且易于维护的Java Web开发模式。在这个实例中,我们将深入探讨如何利用SpringSide进行实际项目开发,特别是其在构建...

    springside开发全面讲解

    《springside开发全面讲解》是一份旨在帮助开发者深入了解并掌握springside框架的详尽教程。springside是一款基于Spring框架的轻量级开发工具集,它为Java开发提供了简洁、高效的解决方案,尤其适合中大型项目的开发...

    springside框架

    《SpringSide框架详解:整合Spring、Hibernate与Struts2的高效解决方案》 SpringSide框架,作为一款基于Java的开源企业级应用开发框架,是开发者们为了简化开发流程、提高开发效率而精心设计的。它巧妙地融合了...

    springside

    2. **最佳实践**:SpringSide定义了一套开发规范,包括命名规则、代码风格、测试策略等,有助于提升团队间的协作效率和代码质量。 3. **示例代码**:SpringSide提供了丰富的示例代码,涵盖了Spring Framework的各种...

    Springside-core-4.1.0/Springside-core-4.1.0

    SpringSide是Java开发中的一款轻量级框架,它基于Spring框架,旨在简化企业级应用的开发流程。本文将深入探讨SpringSide-core-4.1.0的核心特性,以及其在实际项目中的应用。 一、SpringSide概述 SpringSide是一款...

    springside4(showcase)

    Spring MVC是Spring框架的一部分,它提供了一个模型-视图-控制器(MVC)架构,使得开发者能够创建分离关注点、易于测试和维护的Web应用。在SpringSide 4的showcase中,我们可以期待看到如何有效地利用Spring MVC来...

    springside.jar

    在Java开发领域,springside.jar是一个备受推崇的开源项目,它为开发者提供了丰富的工具和最佳实践,以简化Spring框架的使用。本文将深入探讨springside.jar的核心功能,以及如何在实际项目中有效利用它。 一、...

    springside3

    它以其清晰的架构、丰富的示例和全面的文档,为开发者提供了一个快速入门和高效开发的平台。在本次讨论中,我们将深入探讨springside3-core-3.3.4.jar这一核心组件,它是SpringSide 3项目的基石,包含了项目的核心...

    springside5

    【标题】"springside5" 是一个基于SpringSide框架的项目更新,它涉及了数据库、持久层技术、权限管理以及用户体验方面的改进。这个项目旨在提供一个现代化的、高效的开发环境,通过集成不同的技术和组件来优化开发...

    Springside4 学习整理

    Springside4 不是一个完整的框架,而是一个架构示例,帮助开发者理解和应用一系列主流的 JavaEE 技术。最新版本的 Springside4 采用了包括 Spring 3.0、Hibernate 4、Spring Data JPA 和 Apache Shiro 在内的技术栈...

    springside3文档资料收录

    在Web开发中,Spring MVC是Spring框架的一部分,用于构建模型-视图-控制器(MVC)架构的应用。SpringSide3将指导你如何配置DispatcherServlet,创建Controller,以及如何处理请求和响应,理解ModelAndView的工作原理...

    SpringSide文档.chm

    SpringSide文档.chm。

    有springside4.2.3-GA.jar 包

    springside4.2.3-GA.jar是SpringSide框架的一个版本,包含了该框架的所有核心组件和依赖,使得开发者可以快速地引入并使用SpringSide的相关功能。 SpringSide是一个开源的Java企业级开发工具集,它基于Spring ...

Global site tag (gtag.js) - Google Analytics