该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-06
jinnianshilongnian 写道 cqcya 写道 jinnianshilongnian 写道 Spring现在支持如下依赖注入:
1、构造器注入 2、setter注入 3、接口注入 4、字段注入 lz的书中好像没有提到字段注入 此处补充下 Spring支持的字段注入和接口注入 @Service class A{ @Autowired //字段注入 非属性(setter)注入 private B b; } @Service class A{ @Autowired //接口注入 public void prepare(B b, C c) { …… } } 这楼主是陈雄华吧? 这个文章 很久很久以前就发表过了 2.x系列里面就有 我也一时没明白 这个字段注入是 什么 看到你的 @Autowired 就清楚了 |
|
返回顶楼 | |
发表时间:2012-05-06
谢谢,楼主讲的简单明了,学习了
|
|
返回顶楼 | |
发表时间:2012-05-07
“对于软件来说,即是某一接口具体实现类的选择控制权从调用类中移除,转交给第三方决定。”这句算是经典概括。我想会使用框架的人不一定都能搭得上控制指什么,反转又是什么。
|
|
返回顶楼 | |
发表时间:2012-07-05
期待LZ写一下关于工厂模式与回调文章,spring中工厂模式和回调使用很平凡
|
|
返回顶楼 | |
发表时间:2012-08-02
很清楚,第一次看到用这个方式解析,楼主牛人
|
|
返回顶楼 | |
发表时间:2012-08-03
很好!不仅讲明白了IOC容器控制反转。还很好的诠释了OO
|
|
返回顶楼 | |
发表时间:2012-08-05
楼主真的写的太好了,准备买你的书!
|
|
返回顶楼 | |
发表时间:2012-08-06
idlqy 写道 楼主真的写的太好了,准备买你的书!
谢谢支持,对大家真正有帮助才是我最欣慰的。 |
|
返回顶楼 | |
发表时间:2012-08-12
最后修改:2012-08-12
stamen 写道 jinnianshilongnian 写道 ubluee 写道 jinnianshilongnian 写道 cqcya 写道 jinnianshilongnian 写道 Spring现在支持如下依赖注入:
1、构造器注入 2、setter注入 3、接口注入 4、字段注入 lz的书中好像没有提到字段注入 此处补充下 Spring支持的字段注入和接口注入 @Service class A{ @Autowired //字段注入 非属性(setter)注入 private B b; } @Service class A{ //=====>> HERE 1 @Autowired //接口注入 public void prepare(B b, C c) { …… } } HERE 1怎么叫接口注入呢?应该是方法入参注入吧,请问哪儿有定义? 参考 Martin Fowler Inversion of Control Containers and the Dependency Injection pattern http://martinfowler.com/articles/injection.html 呵呵,我觉得HERE1处说是接口注入,可能不太恰当,Martin Fowler的原话是: 引用 With this technique I begin by defining an interface that I'll use to perform the injection through. Here's the interface for injecting a movie finder into an object.
注意他的所说的“defining an interface that I'll use to perform the injection through”,即通过一个接口完成注入的操作,我帖子中的ActorArrangable即是这样的一个接口,它负责注入MoAttach的GeLi对象,所以才是接口注入。 虽然HERE1处的例子也是通过一个方法完成Bean的注入,在用途上和“接口注入”有异曲同工之效,但是这个方法毕竟没有通过一个接口类定义,而是属于宿主目标定义的方法,因此非Martin Fowler所说的“接口注册”,所以我觉得把它叫“方法入参”注入会更妥些 。 恩,今天又看了一遍Martin Fowler的依赖注入文档,接口注入我理解错了。如果把之前的稍微一改,这样其实就可以看作接口注入了: class AInterface { public void prepare(B b, C c); } @Service class A implemenets AInterface{ @Autowired //接口注入 public void prepare(B b, C c) { …… } } 正如你说的,这种方式多写一个接口,在大多数情况下没有什么意义,setter注入完全可以完成所有的注入工作。 |
|
返回顶楼 | |
发表时间:2012-08-13
最后修改:2012-08-13
楼主,你抄袭了spring 3.x企业开发实战 。。着本书我差不多都看完了
|
|
返回顶楼 | |