当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

操纵Annotation举行反转掌握的两种办法[Java编程]

赞助商链接



  本文“操纵Annotation举行反转掌握的两种办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

随着 Guice 的最初发行版渐渐尘埃落定,将它和 Spring IoC,特别是和 Spring JavaConfig 举行的对比也随之浮出水面.Guice 和 JavaConfig 采纳了两种差别的方法利用 Java Annotations 将 IoC 配置放入代码.

目前 Spring JavaConfig 公布了 1.0 Milestone 1 版本,它和 Guice 的基本设法是一致的——把配置从 XML 移至 Annotation 是一种更好的做法,因为这样使得配置信息与代码更为精密.Tapestry 的 IoC 容器也是按照一样的设法计划的.

JavaConfig 和 Guice 的后台极端类似.事实上,Bob Lee 是这样论述它们的历史的:

此外,我还想说一个有点意思的小故事:Guice 最开始的时刻和 Spring JavaConfig 看起来非常像——这并不奇特,因为 Rod 一年前向我展示了 Spring JavaConfig(而六个月前我又让他看了 Guice).正如利用 JavaConfig 一样,你得显式地写 Java 代码来衔接你的对象.我从一开始就引入 @Inject 做为查抄外部代码按照你的安置调用全部的 setters 的一种可选方法.而自打我们有了 @Inject,我开始问,我们为什么还需求显式地编写对象衔接代码呢?于是很快我们就有大家本日所知道的 Guice.

关于 Guice 和 JavaConfig 辨别的帖子有不少.Debasish Ghosh 恰如其分地总结到:

Guice 和 Spring 之间最主要的辨别,可以归结为它们对待依靠关系和配置的哲学之间的差别.Spring 宣扬的是非侵入性的方法,以一种完好外部化的方法来对待对象依靠关系.在 Spring 里,你可以利用 XML、Spring JavaConfig 大概 Groovy-Spring DSL 来衔接对象依靠关系,也可以利用别的的筹划,如 Spring-annotations.但是,不管你用的是什么技术,依靠关系老是被外部化的.

另一方面,Guice 却把配置做为你的利用程序模子的主要对象来对待,答应它们存在于你的范畴模子代码中.我们利用 Guice 模块来阐明需求注入什么东西,然后利用 annotations 来指明需求在什么注入.你可以利用注入来标志(annotate)类本深(通过 @Inject annotation).缺陷则是(假如你使者么认为的话)你必须在你的范畴模子中引入 com.谷歌.inject.*.但它通过元数据编程(metadata programming)来确保了目标的方向性,以及注入的显式语义.

在这些文章的回帖中,你可以发现,在这两个框架之间做挑选的时刻,最值得注意的就是它们计划哲学的辨别.你会但愿依靠注入和代码靠得有多近呢?假如利用 Guice,你的代码将和容器精密耦合在一同,这样做有些人喜好,有些人恶感.Guice 号称自己的速度更快,但值得注意的是,Spring IoC 容器(不管是 JavaConfig 还是别的)支持多种钩子,而 Guice 并没有供应.Spring 为大家带来的不但仅是 IoC,而 Guice 并不打算办理那些大问题.


  以上是“操纵Annotation举行反转掌握的两种办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>在Eclipse中操纵ANT机动构建Web操纵</b>
  • 操纵Ant+JUnit+Cobertura来实现代码覆盖自动测试
  • 操纵ant编译、运行junit以及查抄编码
  • 操纵Annotation举行反转掌握的两种办法
  • 在Eclipse中轻松操纵Ant
  • 在eclipse中操纵Ant实施JUnit
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .