Dagger2简单入门使用

Dagger2是一个依赖注入框架,首先添加gradle依赖:
project的build.gradle添加:

dependencies {
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //添加apt命令
 }

app的build.gradle添加:

// 添加其他插件
apply plugin: 'com.neenbedankt.android-apt'//添加apt命令

dependencies {
    apt 'com.google.dagger:dagger-compiler:2.0.2' //指定注解处理器
    compile 'com.google.dagger:dagger:2.0.2'  //dagger公用api
    provided 'org.glassfish:javax.annotation:10.0-b28'  //添加android缺失的部分javax注解

使用流程

  1. 需要注入的类MainActivity:

     public class MainActivity extends AppCompatActivity {
        private TextView textView;
        @Inject//1.需要被注入的对象上加@Inject注解
        People people;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            DaggerPeopleComponent.create().inject(this);//2.通过dagger自动生成的DaggerPeopleComponent将自身注入
            textView = (TextView) findViewById(R.id.text_view);
            textView.setText(people.name+"\n"+people.age);//3.完成以上步骤就可以直接使用people对象了。
        }
    }
    
  2. 定义module类PeopleModule

         @Module//1.类上面添加@Module注解
        public class PeopleModule {
            @Provides//2. 方法前添加@Provides注解
            public People providePeople() {
                return new Student("jack", 17);//3.方法返回的就是要被注入的对象
            }
        }
    
  3. 定义component接口PelpleComponent

    @Component(modules = {PeopleModule.class})//1.提供注入方法的module
    public interface PeopleComponent {//2.component都是定义成接口,dagger会自动生成实现类,实现类的命名规则为:Dagger+接口名( 所以这里是DaggerPeopleComponent)
        void inject(MainActivity container);//3.需要注入的Container
    }

    最后如果Dagger没有自动生成component而编译报错,一般情况下rebuilt一下就可以解决了。

weixin063传染病防控宣传微信小程序系统的设计与实现+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值