@Inject:Declaring Dependencies 성명 의존.주입 기,표지 가 주 입 된 대상.대상 생 성 을 위 한 구조 적 방법 Use@Inject 를 호출 하여 Dagger 가 사용 해 야 하 는 생 성 자 를 주석 으로 지정 합 니 다.new instance 가 요청 되면,Dagger 는 required parameters values 를 취득 하고 this constructor 를 호출 합 니 다.Dagger 는 fields 를 직접 주입 할 수 있 습 니 다.무 참 구조 함수 에@Inject 주 해 를 추가 하면 대상 이 생 성 됩 니 다.class has@Inject-annotated fields but no@Inject-annotated constructor 가 있 는 경우,Dagger 는 해당 fields 를 요청 하면 주입 합 니 다. but will not create new instances. Add a no-argument constructor with the @Inject annotation to indicate that Dagger may create instances as well.
@Provides:satisfy a dependency.의존 을 제공 합 니 다.모든 Provides 방법 은 Module provideXxx()is invoked whenever a Xxx is required.It contact with the@Inject
에 속 해 야 합 니 다.
@Module:Modules are classes whose methods provide dependencies
@Component:an 인터페이스 연결 의존 과 소비 의존 구성 요소 annotate to such an interface and passing the module types to the modules parameter,Dagger 2 는 완전한 객체 그래프 를 만 들 수 있 습 니 다.인터페이스 구현 클래스:구현 은 Dagger 로 미리 고 정 된 인터페이스 와 동일 한 이름 을 가 집 니 다.해당 구현 에서 builder()메 서 드 를 호출 하여 인 스 턴 스 를 취득 하고 반 환 된 빌 더 를 사용 하여 종속 성 을 설정 하고 새 인 스 턴 스 를 빌 드 합 니 다.약자:접근 가능 한 기본 생 성자 c 가 있 는 모든 모듈an use .create() to initiate an instance.
@Singleton:단일 예 그래프 는 모든 클 라 이언 트 에 하나의 값 인 스 턴 스 를 사용 합 니 다.@Provides 와 클래스 를 디 코딩 할 수 있 습 니 다.
Dagger 2 특수
게 으 른 주사:Lazy게 으 른 로 딩 당신 은 Lazy의 get()메 서 드
의 첫 번 째 호출 까지 인 스 턴 스 를 지연 시 키 는 게 으 른 를 만 들 수 있 습 니 다
Provider injections
이름 규칙:
@Provides methods are named with a provide prefix
@Module classes are named with a Module suffix.
계속 이해 해 야 할 것:
Scope
Provider injections
사용자 정의 주석 Qualifiers
실전 에서 이 해 를 강화 해 야 한다
일방적으로 개념 을 이해 하면 잊 혀 지고 전 모 를 이 루 지 못 한다.이른바 오 브 젝 트 그래프 가 어떻게 형성 되 었 는 지,의존 간 의 상호 의존,의존 을 제공 하 는 것 은 다른 의존 도 를 소비 해 야 한 다 는 것 을 잘 이해 하지 못 한다.그래서 생 성 코드 에서 이해 하면 앞으로 큰 도움 이 될 수 있 습 니 다.
중단 점 은 이해 에 도움 이 된다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: