Closed GoogleCodeExporter closed 9 years ago
1. 还有可能是 InjectByField , 请参看 Mirror.getInjecting 函数
2. 说的对,做了修正 r1205,
如果没有将跳过,如果为空串,注入 NULL
3. 通过 InjectByField, 没有 getter/setter 依然可以被正确注入
最后一段话,没有明白你的意思, 什么叫 “服务类” ,
什么叫 “探测” ?
Original comment by zozoh...@gmail.com
on 10 May 2010 at 2:52
恩,我最近才使用NUTZ做个小东西,也没怎么看源码,基本上都是�
��问题的时候才看看,但是,虽然只
看了一点,但是感觉在注入方式上有些地方不是很舒服,就拿这
个问题所在的地方来说吧,这里所选
择的方式是这样的形式:
1. 获取方法参数的对象
2. 递归得到对象的属性
3.
使用这个属性在request里面去探测,寻找,是否有合适的值,如果�
��注入,没有则放弃
也不是说这种方式不好,我只是觉得这种形式有些弊端,比如:
1.
如果我有多个对象呢?而且多个对象都同时有同一个属性名呢?
2.
如果我没有属性,只有一个setXXX()方法呢?这个setXXX()方法同样��
�我要注入的,那怎么办?
(比如通过setXXX()传一个值进行计算后分别赋值给多个属性)
3.
而且从职责的角度来看,接受注入的对象成了主导,也就是说,��
�象有些什么,它就可以去抢点什
么过来...感觉有点别扭.
现在我们再回到我说的最后一句话,为什么我们不通过外部探�
��的形式呢?
比如,我有这样一个请求:
find.htm?user.name=张三&user.father.name=李四&user.father.father.name=王五
那么我们是否可以先去找有没有user这个对象,然后探测(猜测)u
ser这个对象里面是否可以注入
father这个属性,这里注入的形式可以是属性注入,set注入等,无��
�谓,只是探测有没得,如果
有,OK,给你,没得,我不管你,这样的话,就与现在注入的形式完全
反转了,不再是我差什么你就得给
我什么,而是你有什么,你能给我什么.
另外,上在的那个URL是struts2里面的一种形式...
Original comment by zkgale@gmail.com
on 11 May 2010 at 6:50
关于
find.htm?user.name=张三&user.father.name=李四&user.father.father.name=王五
的这种需求,可以参看 Issue 72
通过 @Param("::user") User user 来声明参数即可
至于特性:一个对象,需要通过 setter
注入,这个对象本身并没有这个属性。
在实际的项目里,不是必须的,但是如果我们能找到一个真��
�的例子来说明,这个特性是必要的,不要不行,我们会考
虑加上
关于解析方式, 是依靠实体对象.fields还是依靠 request.name
来遍历,由于考虑到可能
request.getName 可能效率比较高
以及,我可以预先判断一个对象的字段是要调用 setter 还是
field,也就想当然的用泪 对象.fields 来遍历。
其实我觉得两者的速度可能没什么太大差别,只是我们现在��
�没有一个严格的性能测试来证明哪种方法更好
Original comment by zozoh...@gmail.com
on 11 May 2010 at 7:48
如果你想通过 Request 传入一个 user.father.father.name
之类层级很多的对象,我觉得用名值对是不方便
的,应该用 Json
Nutz 也提供了 JsonAdaptor
Original comment by zozoh...@gmail.com
on 11 May 2010 at 7:49
恩,继续深入关注的,谢谢你对我这些想法的解答.
但是JsonAdaptor有个麻烦的地方是要手工去组装表单...这个要是
表单多的话有点烦
另外,关于性能的考虑,<重构>里面一直在强调别把性能做为参�
��依据,只有结构好的情况下再去调整
性能才是好的...
Original comment by zkgale@gmail.com
on 11 May 2010 at 7:57
通过 jQuery 等扩展库,很容易组装出一个 JSON 对象吧 .....
Original comment by zozoh...@gmail.com
on 13 May 2010 at 7:08
Original comment by wendal1985@gmail.com
on 13 May 2010 at 11:00
Reopen by 天行健's case below
Original comment by zozoh...@gmail.com
on 21 May 2010 at 7:57
如果我使用混淆工具将我的代码混淆了,即使字段名字相同��
�没法注入,因此建议Nutz的实现尽量遵循
JavaBean规范。以保证用户能在代码改动最少的情况下平移到Nut
z框架中。
Original comment by jiongs...@gmail.com
on 21 May 2010 at 8:02
上一个
Comment 9 by jiongs753, May 21, 2010
由issue 203 管理.
Original comment by wendal1985@gmail.com
on 4 Jun 2010 at 2:47
Original issue reported on code.google.com by
zkgale@gmail.com
on 9 May 2010 at 9:56