`

rapid-framework 生成后的SSH三层架构

阅读更多
用了rapid-framework 也有一段时间了,但是一直没认真的去看其中的代码。里面还有很多可研究的东西,这里简单的说下action service dao 层的调用过程,service层和dao层用new对象方式,rapid中采用的是Spring自动注入方式。废话不多说下面看代码!

1.Action 层的调用Service层:

package com.project.zx.action;

import org.junit.Test;

import com.project.zx.bean.User;
import com.project.zx.service.UserManager;

public class UserAction {

        //rapid 中采用Spring自动注入方式这里只是简单演示
	private UserManager userManager = new UserManager();
	private User user = new User();
	
	public String save(){
		user.setId(1L);
		user.setName("myName");
		user.setSex("男");
		userManager.svae(user);//保存User
		return "";
	}
	
	public static void main(String[] args) {
		new UserAction().save();
	}
	
}




2.Service 层的UserManager继承BaseManager,实现BaseManager中getEntityDao抽象方法,返回UserDao实例,实际上Action调用的是BaseManager中的方法。

package com.project.zx.service;

import base.BaseManager;
import base.EntityDao;

import com.project.zx.bean.User;
import com.project.zx.dao.UserDao;

public class UserManager extends BaseManager<User, Long>{

	private UserDao userDao = new UserDao();
	
	@Override
	protected EntityDao getEntityDao() {
		[color=red]return this.userDao;[/color]
	}
	
}



3.抽象类 BaseManager 这里的主要讲getEntityDao抽象方法,getEntityDao抽象方法经过Usermanager实现已经是一个具体的Dao,下面看代码:


package base;

import java.io.Serializable;

public abstract class BaseManager <E,PK extends Serializable>{

	protected abstract EntityDao getEntityDao();
	
	public E getById(PK id){
		System.out.println("1  经过BaseManager : getById");
		return (E)getEntityDao().getById(id);
	}
	
	public void svae(E entity){
		System.out.println("1  经过BaseManager : save");
		getEntityDao().save(entity);
	}
}




4.UserDao 继承 BaseHibernateDao(抽象类增删改具体的实现) 实现 EntityDao接口,UserDao中的getEntityClass抽象方法返回具体的Class 而这Class将在BaseHibernateDao使用,代码就一个方法很简单。

package com.project.zx.dao;

import java.io.Serializable;

import com.project.zx.bean.User;

import base.BaseHibernateDao;

public class UserDao extends BaseHibernateDao<User, Long>{

	@Override
	public Class getEntityClass() {
		return User.class;
	}	
}



5.下面来看BaseHibernateDao抽象类,该类实现EntityDao接口并为之实现。

package base;
import java.io.*;
public abstract class BaseHibernateDao<E,PK extends Serializable> implements EntityDao<E,PK>{

	//模拟HibernateTemplate
	public final HibernateTemplate getHibernateTemplate(){
		HibernateTemplate hibernateTemplate = new HibernateTemplate();
		return hibernateTemplate;
	}
	
	public abstract Class getEntityClass();
	
	public Object getById(PK id) {
		return this.getHibernateTemplate().get(this.getEntityClass(), id);
	}

	public void save(E entity) {
		this.getHibernateTemplate().save(entity);
	}

}



6.贴上EntityDao接口:

package base;

import java.io.Serializable;

public interface EntityDao <E,PK extends Serializable>{
	
	public void save(E entity);
	
	public Object getById(PK id);
}



7.HibernateTemplate 模拟Hibernate中的HibernateTemplate

package base;
import java.io.Serializable;

import com.project.zx.bean.User;


public class HibernateTemplate {

	public Object get(Class entityClass , Serializable id){
		return 1;
	}
	
	public void save(final Object entityClass){
		System.out.println("2 保存"+entityClass.toString()+".....");
		User u = (User)entityClass;
		u.getId();
		u.getName();
		u.getSex();
		System.out.println("3 保存成功   ID: "+u.getId()+"  Name: "+u.getName()+"  Sex : "+u.getSex());
	}
}



好了讲完了,下面附上代码。

学无止境,希望老鸟们给些好的建议!
分享到:
评论

相关推荐

    rapid-framework 整合

    **快速框架(Rapid-Framework)整合指南** 在IT行业中,快速开发框架是提升开发效率、简化项目构建的重要工具。 Rapid-Framework 是一个基于Java的轻量级开发框架,它结合了Hibernate、Spring和SpringMVC等流行技术...

    rapid-framework-3.9.3.20100923.jar

    rapid-framework-3.9.3.20100923.jar

    rapid-framework-3.9.2.20100720.zip

    "rapid-framework-3.9.2.20100720.zip"是一个压缩包文件,其中包含了 Rapid-Framework 的特定版本,即3.9.2,发布于2010年7月20日。Rapid-Framework 是一个用于快速开发的应用框架,旨在提高开发效率并简化软件构建...

    rapid-framework v3.0.1.0 源码

    "Rapid-Framework v3.0.1.0" 是一个专为开发人员设计的高效、易用的代码生成框架,旨在加速应用开发过程,减少重复劳动,提高开发效率。这个框架的核心理念是通过模板引擎生成符合特定业务逻辑的源代码,让开发者...

    rapid-framework-v3.0.1.0及源码

    1. **框架结构**:Rapid-Framework 的整体架构可能采用了分层设计,如表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data Access Layer),以及可能存在的服务层和服务接口层,...

    rapid-framework-common-3.9.3.20100923-src doc

    总之,Rapid Framework Common提供了一个强大的开发平台,结合了多种流行的Java Web技术,通过其集成的SSH框架和代码生成器,大大提升了开发效率。配合详尽的文档,无论是初学者还是经验丰富的开发者,都能在这个...

    rapid-framework-3.9.3.20100923

    - **rapid-framework-3.9.3.20100923**: 这可能是框架的二进制库或者安装包,包含了编译后的库文件和必要的配置文件,使得开发者可以直接在项目中引用和使用Rapid-Framework。 - **reference_doc**: 这应该是框架的...

    rapid-framework-common-3.9.3.20100923-src.zip

    "Rapid-Framework Common 3.9.3.20100923-src.zip" 是一个包含源代码的压缩包,它属于Rapid-Framework的通用组件部分,版本号为3.9.3,发布日期为2010年9月23日。SSH框架是指Struts、Spring和Hibernate的集成,是...

    PyPI 官网下载 | rapid-framework-1.3.0.tar.gz

    安装完成后,就可以在Python代码中导入并使用`rapid-framework`了。具体的使用方法通常会在库的文档或README文件中说明,包括如何配置、导入模块以及调用其提供的功能。 **版本管理** 在软件开发中,版本控制非常...

    rapid-generator-v3.9 代码生成器独立版

    对于iBatis和iBatis3的支持,Rapid-Generator可以生成Mapper接口、XML配置文件以及对应的Service和DAO层代码,使得基于这些持久层框架的开发变得更加便捷。在Hibernate方面,它可以生成实体类、SessionFactory配置和...

    rapid-framework 一个类似ruby on rails的java web快速开发脚手架

    3. **自动化工具**:基于其快速开发的目标,rapid-framework可能包含自动化工具,如自动生成CRUD操作、模型、视图和控制器代码,以及数据库迁移工具等。 4. **数据验证**:“rapid-validation”模块可能提供了一套...

    最快速的java代码生成器 rapid-generator

    "最快速的Java代码生成器 Rapid-Generator"是一款专为Java开发者设计的高效工具,旨在提升开发效率,减少手动编写重复代码的工作量。这款工具以其快速、灵活和强大的自定义能力在Java开发社区中受到广泛关注。 ...

    framework rapid

    文件"rapid-framework-3.9.3.20100923"可能是该框架的一个特定版本,发布于2010年9月23日。这个版本可能包含了框架的所有源代码、文档、示例项目和必要的库文件,供开发者下载使用。开发者可以通过这个版本学习和...

    最快速的java代码生成器rapid-generator

    rapid-generator是一个生成器引擎,让你可以专注与代码生成器模板的编写, 可以生成如ibatis,ibatis3,hibernate,spring_mvc,struts2等等代码. 该项目是 Rapid Framework 框架的一部分。

    standalone-rapid-generator-3.9.2.20100720.zip

    standalone-rapid-generator作为其一部分,是这个框架下的代码生成工具,它能够很好地与Rapid Framework集成,帮助开发者快速搭建项目基础架构。 5. **版本管理**:通过使用特定版本的工具,比如这里的3.9.2....

    rapid-validation完整包

    在实际应用中,"Rapid-Validation"可能支持动态验证,即在用户输入时即时检查数据的有效性,而不是等到表单提交后才进行检查。这样可以提供实时反馈,让用户知道他们需要改正什么,从而提高交互体验。 此外,样例...

    metasploit-framework-6.4.12.zip

    《Metasploit Framework 6.4.12:渗透测试利器详解》 Metasploit Framework 是全球最知名的开源渗透测试工具之一,它为安全研究人员、红队成员以及信息安全专业人士提供了强大的漏洞利用和攻击模拟能力。在最新发布...

    最快速的Java代码生成器rapid-generator

    "最快速的Java代码生成器Rapid-Generator"是一款高效能的工具,旨在为开发者提供便捷的Java框架代码自动生成服务。它通过自动化的方式减少了手动编写重复性代码的工作量,提高了开发效率,使得开发者能够更专注于...

    whywhy898-DDit-Rapid-Development-Framework-cb46205.zip

    【标题】"whywhy898-DDit-Rapid-Development-Framework-cb46205.zip" 提供的是一个名为 "DDit" 的开源框架,该框架专注于快速开发,旨在帮助开发者高效构建应用程序。其核心特性是预先构建了权限管理、用户管理和...

Global site tag (gtag.js) - Google Analytics