依赖注入 javax.inject中@Inject、@Named、@Qualifier和@Provide
这个是?Java?EE?6?规范?JSR?330?--?Dependency?Injection?for?Java?中的东西,也就是?Java?EE?的依赖注入。
用过Spring框架的我们都知道,每当生成依赖注入的时候,我们都必须生成相应类的set方法,而且要在set方法上面写上@Autowired,才能实现依赖注入,如下:
Java代码??
?每次都要生成相应的set方法感觉好麻烦,现在如果我们使用javax.inject.jar,只需要在相应类的属性上面加上@Inject,如下代码: import?javax.inject.Inject;??
@Inject ??? @Inject支持构造函数、方法和字段注解,也可能使用于静态实例成员。可注解成员可以是任意修饰符(private,package-private,protected,public)。注入顺序:构造函数、字段,然后是方法。父类的字段和方法注入优先于子类的字段和方法,同一类中的字段和方法是没有顺序的。 ??? @Inject注解的构造函数可以是无参或多个参数的构造函数。@Inject每个类中最多注解一个构造函数。 ??? 在字段注解:
??? 在方法上注解:
??????? @Inject?MethodModirers ResultType Identifier(FormalParameterList ) Throws MethodBody ??? [上述翻译:inject的doc文档,翻译不好敬请谅解] ??? 构造函数注解:
copy
copy
??? SpringUtil类: copy
copy
@Qualifier ??? 任何人都可以定义一个新的修饰语,一个qualifier注解应该满足如下条件: ??? 下面是Qualifier的例子: Genre注解类: copy
测试类: copy
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |