美文网首页
开源项目的依赖注入

开源项目的依赖注入

作者: 黑马程序员武汉校区 | 来源:发表于2019-08-16 11:24 被阅读0次

开源项目的依赖注入

依赖注入概念

依赖(Dependency)
•   ClassA中需要ClassB,通常我们在A的代码中new一个ClassB。
•   采用依赖注入技术之后,A不再需要直接new一个ClassB,它只需要定义一个私有的B对象,由相关的框架或者容器在外部把B实例化,再注入到A;
public class MainActivity extends Activity {
    private ProductBean mProduct;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //mProduct = new ProductBean("1", "鞋子");
        Utils.injectProduct(this);
    }
}

依赖注入(DI:Dependency Injection):

    ClassA的运行依赖于ClassB,如果ClassB对象的获取需要ClassA自己去实现的话,常常会导致代码高度耦合。反过来,如果ClassB对象的获取是由外部容器注入的,这个“依赖注入”的过程常常被称为控制反转(IOC:Inversion of Control), 就是获取对象的方式变了依赖注入是实现控制反转的方式之一(另一方式是依赖查找),目的就是为了让调用者和被调用者之间解耦可以注入依赖的模拟实现,使得测试变得更加简单.

依赖注入方式:

•   set方法。给外部容器的一个接口,传入依赖的对象。
•   基于构造函数。在新建对象时,传入依赖的对象。
•   基于Java的注解(Annotation)功能

ButterKnife黄油刀

•   主页 https://github.com/JakeWharton/butterknife
•   用途: 主要用来简化各种初始化控件的操作
配置:
在项目根目录下build.gradle文件中添加apt编译插件:
buildscript {
 repositories {
   mavenCentral();      
   jcenter();
 }

 dependencies {
   classpath 'com.android.tools.build:gradle:2.1.0'
   classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
    }
}
在app/build.gradle文件中dependencies节点添加如下代码
apply plugin: 'android-apt'     
 // 应用apt插件
dependencies {
 compile 'com.jakewharton:butterknife:8.1.0'          
 apt 'com.jakewharton:butterknife-compiler:8.1.0'
}
安装Android ButterKnife Zelezny插件, 安装成功以后重启Android Studio

AndroidAnnotations

•   主页: http://androidannotations.org/
•   用途:
        1.  使用依赖注入Views,extras,System Service,resources
        2.  简化线程模型
        3.  事件绑定
        4.  REST Client
配置:
在project/build.gradle 文件中按下图所示添加代码:
buildscript {
    repositories {
         mavenCentral()      
        // 添加这一行
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'  // 添加这一行
    }
}

在app/build.gradle 文件中按下图所示添加代码:
apply plugin: 'android-apt'
    apt {
    arguments {
        androidManifestFile variant.outputs[0]?.processResources?.manifestFile
    }
}
dependencies {
    apt "org.androidannotations:androidannotations:4.0.0"
    compile "org.androidannotations:androidannotations-api:4.0.0"
}
注入View,注入Click事件。注意view和click事件不能是private
1.  注入系统service,设置全屏,设置WindowFeature
2.  简化线程模型
@Background
@UiThread

相关文章

  • 开源项目的依赖注入

    开源项目的依赖注入 依赖注入概念 依赖注入(DI:Dependency Injection): 依赖注入方式: B...

  • Android Jetpack系列--9. Hilt使用详解

    相关知识 依赖注入 Dependency Injection,简称DI; 依赖项注入可以使代码解耦,便于复用,重构...

  • Hilt入门

    Hilt 是什么 Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。执行手...

  • android中Hilt的使用流程

    依赖注入 Dependency Injection,简称DI; 依赖项注入可以使代码解耦,便于复用,重构和测试 什...

  • ASP.NET MVC开发:依赖注入

    什么是依赖注入 依赖注入(Dependency injection,DI)是一种实现对象及其合作者或依赖项之间松散...

  • Hilt使用姿势全解析

    Hilt是什么? Hilt是Android的依赖注入库,可以减少在项目中执行手动依赖项注入的样板代码。执行手动依赖...

  • Android中的依赖项注入学习笔记

    什么是依赖项注入 依赖项注入(DI)是一种广泛用于编程的技术,是一种对象接收其依赖的其他对象的技术,这些其他对象称...

  • SCA——开源安全威胁一网打尽

    随着企业对开源软件的使用增加,开源依赖项(开源的组件,通常称为依赖项)中携带的安全漏洞和其他安全风险无处不在,企业...

  • JetPack之Hilt使用

    依赖注入是什么 把有依赖关系的类放在容器中,解析这些类的实例,并在运行时注入到对应的字段中,就是依赖注入,目的是为...

  • 关于spring IOC的学习笔记整理

    控制反转和依赖注入 ioc的核心是DI,目的就是提供一种更简单的机制来设置组件依赖项,并在整个生命周期中管理这些依...

网友评论

      本文标题:开源项目的依赖注入

      本文链接:https://www.haomeiwen.com/subject/nmjfsctx.html