Java里inject_javax.inject中@Inject、@Named、@Qualifier和@Provider用法

  • Post author:
  • Post category:java


@Inject

@Inject支持构造函数、方法和字段注解,也可能使用于静态实例成员。可注解成员可以是任意修饰符(private,package-private,protected,public)。注入顺序:构造函数、字段,然后是方法。父类的字段和方法注入优先于子类的字段和方法,同一类中的字段和方法是没有顺序的。

@Inject注解的构造函数可以是无参或多个参数的构造函数。@Inject每个类中最多注解一个构造函数。

在字段注解:

用@Inject注解

字段不能是final的

拥有一个合法的名称

在方法上注解:

用@Inject注解

不能是抽象方法

不能声明自身参数类型

可以有返回结果

拥有一个合法的名称

可以有0个或多个参数

@Inject MethodModirers ResultType Identifier(FormalParameterList ) Throws MethodBody

[上述翻译:inject的doc文档,翻译不好敬请谅解]

构造函数注解:

@Inject

public House(Person owner) {

System.out.println(“—这是房屋构造函数—“);

this.owner = owner;

}

字段注解:

@Inject private Person owner;

方法注解:

@Inject

public void setOwner(Person owner) {

this.owner = owner;

}

@Inject注解和Spring的@Autoware注解都是根据类型对其进行自动装配。

SpringUtil类:

public class SpringUtil {

private static ApplicationContext context = null;

public static ApplicationContext getApplicationCont



版权声明:本文为weixin_36108913原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。