Java依赖注入

过去的几年间,Google和SpringSource分别通过其开源项目Guice及Spring Framework提供了依赖注入的功能。然而直到现在开发者也没有一种标准的、独立于供应商的方式从而无需修改其源文件就能在这些框架之间进行切换。但时过境迁,如果一切顺利的话一些核心的依赖注入注解和接口将会添加到Java SDK中。

就在几周前Google宣布了其与SpringSource的合作:

此次合作的目的在于标准化一套经过实践检验的、没有争议的注解,以便使那些被注入的类能够在这两个框架间进行移植。

本周初一个官方的提议(JSR 330:Java依赖注入)已经提交给了JCP(Java Community Process)。该提议表明此JSR的目标在于Java SE平台,至少是5.0版本,但同时也希望为Java EE中的依赖注入打下一个良好的基础。最先提出的一套注解包括:

  • @Inject –  用于标识注入的构造方法、方法及属性

  • @Qualifier - 用于标识限定的注解

  • @Scope - 用于标识范围的注解

  • @Named - 基于字符串的限定

  • @Singleton - 表明被注解的类型只会被实例化一次

整个过程,从最初的注解到JSR的提交都是开放的,这样就能充分听取社区的反馈意见。事实上,社区已经通过多个博客对此次合作、提议甚至是整件事的价值提出了各种看法。

下面是个投票系统,表明了InfoQ社区的看法,你也来参加吧,结果可能很有意思。

 

查看英文原文:Dependency Injection for Java

你可能感兴趣的:(Java依赖注入)