论坛首页 Java企业应用论坛

看了Warp和Hibernate Dynamic Dao想到的

浏览 2307 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-27  
    看过 ROBBIN 老大的Warp framework - 一个相当有前途的Java轻量级Web开发框架 和  NORTHER 的模仿Warp Dynamic Finder的Hibernate Dynamic Dao 真是受益良多,呵呵,感谢感谢!!
    对WARP-MVC比较感兴趣,运行了一下演示DEMO,感觉不错啊。我对TAPESTRY不了解,觉得将模板改成JSP+EL会降低学习曲线。直接修改WARP-MVC处理后forward到JSP,这个代码改得比较粗糙,见不了光...不好意思摆出来,呵呵!

    NORTHER 的Dynamic Dao看得很爽,建议调整一下:在@InjectDao强制加入entityClass并让其可以在FIELD使用,使用时:
@Service
public class UserService {
	
	@InjectDao(User.class)
	private UserDao userDao;
	

	public Serializable save(User entity) {
		return userDao.save(entity);
	}

	public void delete(Serializable id) {
		userDao.delete(this.get(id));
	}

	public User get(Serializable id) {
		return userDao.get(id);
	}
        ......

}

    其它的QUERY ANNOTATION就可以省去entityClass了,HibernateDao和HibernateDaoDelegator可以用范型,再加上一个CommonDao<E>提供基本的CRUD方法。
@Transactional
public interface CommonDao<E> {
	
	@Save
	public Long save(E entity);

	@Delete
	public void delete(E entity);

	@Update
	public void update(E entity);

	@Get
	public E get(Serializable id);

}

    其实可以利用SPRING的IoC ANNOTATION,@Autowired或@Resouce来注入代码中的依赖的BEAN,如:在HibernateDaoDelegator 用@Resouce注入sessionFactory
@Repository
public class HibernateDaoDelegator<E> implements HibernateDao<E> {

	@Autowired
	private SessionFactory sessionFactory;
        
        ......
}

    这样就不需要依赖Setter方法了,整个代码看起来会更清爽。

以为代码基于 NORTHER 的模仿Warp Dynamic Finder的Hibernate Dynamic Dao
用于学习,COPY LEFT
待续......
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics