dagger2 예제

물론 어떤 시점에서 누군가는 종속성을 인스턴스화하고 실제로 필요할 수 있는 개체에 제공해야 합니다. 종속성 그래프 를 빌드하는 이 단계는 일반적으로 응용 프로그램의 진입점에서 수행됩니다. 예를 들어 데스크톱에서 이 코드는 아래와 같이 기본 메서드 내에서 찾을 수 있습니다. Android에서는 활동의 onCreate 메서드 내에서 수행할 수 있습니다. 단검이 종속성을 주입할 위치를 알고 있는 응용 프로그램 구성 요소를 만들어야 합니다. Dagger2에서 구성 요소라는 클래스를 주입했다. 이러한 구성 요소는 활동, 서비스 및 조각에 참조를 할당하여 이미 정의된 단일 톤에 액세스할 수 있도록 합니다. 당신은 완전히 종속성 주입의 이점을 확신하지 않는 경우, 또는 테스트 가능성을 향상 더 많은 예를보고 싶은 경우, 놀라운 가이드 작성 테스트 코드, Miško Hevery에 의해 작성하시기 바랍니다, 러스 러퍼와 조나단 울터. 이 블로그에서 Dagger2 안드로이드 효율적인 접근 방식의 GitHub 저장소를 클릭하면 Dagger2를 사용하여 종속성 주입을 설명합니다.

Dagger2의 용도와 구현에 대해 알아봅니다. 이 Dagger2 안드로이드 예제에서는 dagger2가 단단한 커플링 문제에 대한 해결책을 제공하는 방법을 설명합니다. 이 예제에서는 Maven에서 관리하는 표준 Java 프로그램에서 Dagger 2를 사용합니다. 이제 Android에서 Dagger2를 사용하여 종속성 주입을 구현하는 방법을 설명합니다. 자체 프로젝트에서 종속성 주입을 설정하려면 다음 단계를 수행해야 합니다. 위의 예제에서는 newMyActivitySubcomponent()가 호출될 때마다 하위 구성 요소의 새 인스턴스가 만들어집니다. 하위 모듈을 사용하여 활동을 삽입하려면 이 문제를 설명하기 위해 작은 예제를 좀 더 현실적으로 만들어 보겠습니다. 실제로 WeatherService에서는 네트워크를 통해 통신하기 위해 WebSocket이 필요할 수 있습니다. LocationManager는 GPSProvider가 하드웨어와 통신하도록 요구하며 대부분의 클래스는 콘솔에서 유용한 디버깅 정보를 인쇄하기 위해 로거가 필요할 수도 있습니다.

수정된 주 함수는 다음과 같이 보입니다: 문제를 이해하기 전에 이 문제의 원인을 확인할 수 있습니다. 종속성 주입이라는 개념을 구현하려고 합니다. 구성 요소가 다른 구성 요소에 의존하는 경우 이 종속성 자체를 만드는 대신 외부에서 제공(주입)해야 합니다. 이렇게하면 구성 요소 간의 느슨한 결합, 구성 요소의 동작을 테스트하는 간단한 방법 및 훨씬 더 깔끔한 코드에 도움이됩니다. 기본 예제 코드는 종속성 주입클래스를 보다 쉽게 테스트하고 재사용할 수 있도록 하는 기술입니다. 이를 적용하는 방법을 보려면 예제부터 시작해 보겠습니다. 콘솔에서 현재 기상 조건을 인쇄하는 응용 프로그램을 작성해야 한다고 가정합니다.