大家帮忙看一下这样的SSH框架结构好不好
本帖最后由 devil13th 于 2012-05-14 17:26:11 编辑
原文引用:http://devil13th.iteye.com/admin/blogs/1528498
说明:最好看原文,有源码
先看一下整体结构图
说明:
红色部门是DAO
蓝色部门是SERVICE
绿色部门是ACTION(或是Spring的Controller)
DAO部分说明
BaseDao是基类,所有的DAO都继承此BaseDao,BaseDao继承了HibernateDaoSupport,用HibernateTemplate实现了一些基础的方法(插删改查),以下是代码
Java代码
对于所有模块的DAO,Spring配置中都注入到了DaoFactory中,DaoFactory代码如下
Java代码
package com.thd.dao;
import com.thd.dao.tree.TreeDao;
import com.thd.dao.user.UserDao;
public class DaoFactory {
private UserDao userDao;
private TreeDao treeDao;
public TreeDao getTreeDao() {
return treeDao;
}
public void setTreeDao(TreeDao treeDao) {
this.treeDao = treeDao;
}
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
DaoFactory中有所有模块的DAO提供给Service使用。
SERVICE部门说明
BaseServiceImpl是所有模块Service的基类,BaseServiceImpl有DaoFactory的引用 还有ServiceFactory的引用(因为有可能一个Service调用另外一个Service的方法,所以引用了ServiceFactory,ServiceFactory在下面有说明),所有模块的Service继承BaseServiceImpl后就可以拿到所有的DAO和Service。ServiceFactory分为两种IocServiceFactoryImpl和InjectionServiceFactoryImpl,他们都实现了ServiceFactory接口(此接口有所有模块Service的Setter Getter方法),只不过Getter方式不同,一个是通过Spring IOC容器注入然后获取Service Bean,一个是通过代码拿到Spring IOC中的Service Bean.ServiceFactory的实现注入到BaseServiceImpl以提供给所有模块的Service。
IocServiceFactoryImpl的代码如下:
Java代码
package com.thd.serviceimpl;
import
org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.thd.service.ServiceFactory;