当前位置: 首页 > news >正文

企业网站架构竞价账户托管公司

企业网站架构,竞价账户托管公司,基于jsp网站开发,wordpress个性时光轴主题什么是Dagger和Hilt Dagger和Hilt都是安卓端的依赖注入框架 通过注解生成的方式,来取代手动创建对象的方式,来管理对象和其作用域 Dagger是Square公司出品的,而Hilt是由Google公司在Dagger的基础上优化而来 配置项目级别gradle buildscri…

什么是Dagger和Hilt

Dagger和Hilt都是安卓端的依赖注入框架

通过注解生成的方式,来取代手动创建对象的方式,来管理对象和其作用域

Dagger是Square公司出品的,而Hilt是由Google公司在Dagger的基础上优化而来

配置项目级别gradle

buildscript {repositories {mavenLocal()maven { url 'https://jitpack.io' }maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/releases' }google()mavenCentral()}dependencies {classpath "com.android.tools.build:gradle:4.2.2"classpath 'com.google.dagger:hilt-android-gradle-plugin:2.44'}}task clean(type: Delete) {delete rootProject.buildDir}

配置模块级别gradle

apply plugin: 'com.android.application'apply plugin: 'com.google.dagger.hilt.android'android {compileSdkVersion 30defaultConfig {applicationId "com.android.code"minSdkVersion 28targetSdkVersion 30versionCode 1versionName "1.1.1"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}buildFeatures {viewBinding truedataBinding true}}dependencies {api 'androidx.appcompat:appcompat:1.2.0'api 'com.google.android.material:material:1.3.0'api 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'//GSONapi 'com.google.code.gson:gson:2.8.7'//RxJava2api 'io.reactivex.rxjava2:rxjava:2.1.3'api 'io.reactivex.rxjava2:rxandroid:2.0.1'//Retrofit2api 'com.squareup.retrofit2:retrofit:2.3.0'api 'com.squareup.retrofit2:converter-gson:2.3.0'api 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'//Dagger2api 'org.glassfish:javax.annotation:10.0-b28'api "com.google.dagger:dagger:2.47"annotationProcessor "com.google.dagger:dagger-compiler:2.47"//Hiltapi 'com.google.dagger:hilt-android:2.44'annotationProcessor 'com.google.dagger:hilt-android-compiler:2.44'}

Hilt使用方式

由于Hilt是个Dagger基础上优化而来,因此使用方式比较相似

这里我们只讲解Hilt的使用方式,不再讲解Dagger

  • 在Application上添加@HiltAndroidApp注解

  • 在需要注入对象的组件,比如Activity或Fragment上,添加@AndroidEntryPoint注解

  • 在需要注入对象的组件中,通过@Inject注解定义对象

  • 在需要注入对象的默认构造方法上,添加@Inject注解

  • 如果需要在某个作用域内共享对象,可以在类名上添加作用域注解,如@Singleton,@ActivityScoped,@ViewScoped等

  • 如果希望注入对象,在其子组件中重新注入仍然生效,可以通过@Module注解定义一个专门的模块类

  • Module类需要通过@InstallIn指定安装到哪个组件中,Module类还需要提供一个方法,用于生产对象

  • Module类中用于生产对象的方法,需要添加作用域注解,和@Provides注解

  • Module类中,Method上的作用域注解,和InstallIn指定的组件,范围必须对应

Hilt参考代码

public class User extends BaseObservable {public String account;public String password;public String name;@Injectpublic User() {}@Overridepublic String toString() {return hashCode() + "";}}
@AndroidEntryPoint@SuppressWarnings("all")public class HomeActivity extends AppCompatActivity {@InjectUser user1;@InjectUser user2;}
@Module@InstallIn(ActivityComponent.class)public class UserModule {@ActivityScoped@Providespublic static User injectUser() {return new User();}}
http://www.ds6.com.cn/news/77180.html

相关文章:

  • 长春网站建设索q479185700平台推广方式
  • 网站诊断培训学校机构
  • 网站开发设计过程互联网营销师培训教材
  • 大连网站运营制作方案中国疫情最新情况
  • 杭州做网站哪家便宜今天发生的重大新闻5条
  • 国内网站是cn还是com免费广告推广软件
  • 网站外包优化推广优化
  • 句容做网站网站营销网站营销推广
  • 腾讯建站官网seo推广官网
  • 静态网站建设教程seo还可以做哪些推广
  • 公司网站的备案号是如何链接的广告投放代理商加盟
  • 徐汇网站建设游戏推广公司怎么接游戏的
  • sns社交网站.net源码服装营销方式和手段
  • 深圳app开发公司哪家最靠谱网站的优化
  • 科技局网站建设方案外贸seo网站推广
  • 正规网站建设价格费用今日热搜榜排行榜
  • 科技型中小企业认定官网什么是seo如何进行seo
  • 海口招商建设有限公司网站免费推广的平台
  • 独立ip做网站如何在百度上做产品推广
  • 有哪些做动图的网站电话营销技巧和营销方法
  • 无法访问网站seo收费标准多少
  • 个人手机版网站app怎么做方法seo
  • 网站建设微信托管免费舆情网站下载大全最新版
  • 便宜的云服务器租用石家庄百度推广优化排名
  • 网站如何制作 优帮云万网
  • 门户网站团队建设自己建网站需要多少钱
  • 东营市建设seo怎么才能做好
  • 南县人民政府门户网站重庆森林电影简介
  • 画册设计免费模板sem优化推广
  • 做瑞士网站全网搜索引擎优化