hi, bngj

这个问题,嘿嘿, 我请教banq关于如何将DAO注射到BO中(DAO为静态的),banq说这种思考方式不正常, 他说注射源码可以看picocontainer,于是......

1. “数据绑定"是通过JavaBean的内省和反射机制实现的. 具体实现可以参考tomact源码(<jsp:setProperty/> 标签)。struts是依赖StringUtils实现ActionForm的,它是Apache的一个子项目common下的一个包,都是开源的。

2. 有没有别的业务方法,私人框架,这个不清楚,但ActionForm有reset(),validate()方法,估计它也有类似的方法。DTO中写入业务方法,只要不是很复杂,代码清晰,可以容忍的,不鼓励。

Struts鼓励ActionForm的属性为String类型,其实这个没必要,看一下,<jsp:setProperty />的实现就知道了。

一种是实体型的,他包含的业务方法,应该是和自身关系紧密的,同时细粒度的,应该是越细越好。

第二层是应用层的,也就是我们普遍叫的Service,他也是业务对象,只不过,它不是实体模型,他针对应用,由他对外提供服务,在整个架构中,由他实现业务

--很经典啊,恍然大悟!

贫血很好,不然这些领域对象会越来越复杂,直至难以控制。
最糟糕的是贫血和有血同时存在,让web不知道什么时候能直接管理领域对象,什么时候必须用服务管理。

恩,受益匪浅