java inject例子_Dagger基础:Java依赖注入标准(javax.inject)介绍

Scope

有这个注解的类包含了一个可注入的构造函数和管理injector如何重新使用这个实例

如果没有这个注解,injector生成并使用一次,然后就丢弃

有了这个注解,那就会保留以便以后的注入

如果是多线程,那就是线程安全的

@Target(ANNOTATION_TYPE)//注意看这里,这是一个加在注解上的注解

@Retention(RUNTIME)

@Documented

public @interface Scope {}

有Scope注解的注解,举一例Singleton(单例),第二次用之前就不用再次注入了

@Scope

@Documented

@Retention(RUNTIME)

public @interface Singleton {}

Singleton

Singleton的注释只有一句

Identifies a type that the injector only instantiates once. Not inherited.

仅仅只是初始化一次

Qualifier

@Target(ANNOTATION_TYPE)//注意看这里,这又是一个加在注解上的注解

@Retention(RUNTIME)

@Documented

public @interface Qualifier {}

这个注解需要注意,通常和@Retention(RUNTIME)一起使用,可以加上@Documented.同时,标注了这个注解的注解可以有属性

Named

基于string的Qualifier

@Qualifier

@Documented

@Retention(RUNTIME)//一起使用

public @interface Named {

/** The name. *///可以有属性

String value() default "";

}

Inject(很重要的一个注解)

Inject支持构造函数、方法和字段注解,也可能使用于静态实例成员。可注解成员可以是任意修饰符(private,protected,public)。

注入顺序:构造函数、字段,然后是方法

Inject注解的构造函数可以是无参或多个参数的构造函数。

Inject每个类中最多注解一个构造函数。

在字段注解字段不能是final的

在方法上注解不能是抽象方法,同时不能声明自身参数类型

Provider(这是个interface)

同在一个包下的还有Provider

注释很好理解

Provides instances of T. Typically implemented by an injector. ......

提供T的实例,通常implement一个injector(暂时没有实例来展示怎么用,讲dagger的时候会说明的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值