系列文章目录
Dagger2的入门学习(一)
Dagger2——项目中的使用场景(二)
一、组件依赖
在项目中,像第三方框架实例那些,需要全局实例,而自定义的实体类则需要局部单例
步骤1:创建实体类的构造方法
public class User {
//步骤1:在实体类中不需要加入注解
public User(){
}
}
步骤2:创建Module
类,提供User
实例的创建方法
/**
* 步骤2:创建Module类,提供User实例的创建方法
*/
@Module
public class UserModule {
//该自定义作用域不能跟父组件接口的同名
@UserScope
@Provides
User providesUser(){
return new User();
}
}
步骤3:创建Component
组件接口,提供注入的方法,自定义作用域不能跟父组件接口的同名
/**
* 步骤3:创建Component组件接口,提供注入的方法(不可以跟父组件接口方法重名,重名的话只能存在其一)
* 注意点1:提供注入的方法(不可以跟父组件接口方法重名,重名的话只能存在其一)
* 注意点2:因为父组件接口里面有其他modules,我们需要在子组件接口下显性声明里面的方法实例
* 注意点3:如果父组件接口使用了自定义作用域1,则子组件也同样需要自定义作用域2(两个作用域不一样)
*/
@UserScope
@Component(modules = UserModule.class)
public interface UserComponent {
void inject(MainActivity mainActivity);
//同时,因为父组件接口里面有其他modules,我们需要在子组件接口下显性声明里面的方法实例
Retrofit retrofit();
}
步骤4:在所需的activity
界面用子组件接口生成的类执行依赖注入
二、全局context
步骤1:在对应的Moude
类中提供context
的方法
步骤2:在对应的组件接口中去声明
步骤3:在Application
类中指定module
实例
步骤4:在所需的activity
界面引入