수색…


비고

이 섹션에서는 rx-java에 대한 기본적인 개요와 소개를 제공합니다.

RxJava는 Reactive Extensions : 관찰 가능한 시퀀스를 사용하여 비동기 및 이벤트 기반 프로그램을 작성하기위한 라이브러리 인 Java VM 구현입니다.

위키 홈 에서 RxJava에 대해 자세히 알아보십시오.

버전

번역 지위 최신 안정 버전 출시일
1.x 안정된 1.3.0 2017-05-05
2.x 안정된 2.1.1 2017-06-21

설치 또는 설정

rx-java 설정

  1. 요람

    compile 'io.reactivex:rxjava2:rxjava:2.1.1'
    
  2. 메이븐

    <dependency>
        <groupId>io.reactivex.rxjava2</groupId>
        <artifactId>rxjava</artifactId>
        <version>2.1.1</version>
    </dependency>
    
  3. 여자 이름

    <dependency org="io.reactivex.rxjava2" name="rxjava" rev="2.1.1" />
    
  4. JFrog의 스냅 샷

    repositories {
    maven { url 'https://oss.jfrog.org/libs-snapshot' }
    }
    
    dependencies {
        compile 'io.reactivex:rxjava:2.0.0-SNAPSHOT'
    }
    
  5. 빌드 시스템을 사용하는 대신 jar를 다운로드해야하는 경우 원하는 버전으로 다음과 같이 Maven pom 파일을 작성하십시오.

    <?xml version="1.0"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.netflix.rxjava.download</groupId>
        <artifactId>rxjava-download</artifactId>
        <version>1.0-SNAPSHOT</version>
        <name>Simple POM to download rxjava and dependencies</name>
        <url>http://github.com/ReactiveX/RxJava</url>
        <dependencies>
            <dependency>
                <groupId>io.reactivex</groupId>
                <artifactId>rxjava</artifactId>
                <version>2.0.0</version>
                <scope/>
            </dependency>
        </dependencies>
    </project>
    

그런 다음 실행 :

$ mvn -f download-rxjava-pom.xml dependency:copy-dependencies

이 명령은 rxjava-*.jar 및 그 종속성을 ./target/dependency/.

Java 6 이상이 필요합니다.

안녕, 세상!

다음은 Hello, World! 메시지를 인쇄합니다 Hello, World! 콘솔로

public void hello() {
  Observable.just("Hello, World!") // create new observable
    .subscribe(new Action1<String>() { // subscribe and perform action

       @Override
       public void call(String st) {
         System.out.println(st);
       }

    });
}

또는 Java 8 람다 표기법 사용

public void hello() {
      Observable.just("Hello, World!") // create new observable
        .subscribe(onNext -> { // subscribe and perform action
             System.out.println(onNext);   
        });
}

RxJava에 대한 소개

RxJava의 핵심 개념은 Observables and Subscribers 입니다. Observable 은 객체를 방출하는 반면 Subscriber 는 객체를 소비합니다.

주목할 만한

Observable 것은 반응 설계 패턴을 구현하는 클래스입니다. 이 Observables는 소비자가 이벤트 변경 사항을 구독 할 수있는 방법을 제공합니다. 이벤트 변경은 관찰 가능에 의해 트리거됩니다. Observable 이 가질 수있는 가입자의 수 ​​또는 Observable 이 방출 할 수있는 객체의 수에는 제한이 없습니다.

예를 들면 다음과 같습니다.

Observable<Integer> integerObservable = Observable.just(1, 2, 3); // Integer observable
Observable<String> stringObservable = Observable.just("Hello, ", "World", "!"); // String observable

여기서 관찰 가능한 객체 인 integerObservablestringObservable 은 Rx 라이브러리에서 just 제공 한 팩토리 메소드에서 생성됩니다. Observable 은 일반적이므로 모든 객체를 내보낼 수 있습니다.

구독자

Subscriber 는 소비자입니다. Subscriber하나의 관찰 가능 항목 Subscriber 할 수 있습니다. Observable 부르는 onNext() , onCompleted() , 및 onError() 의 방법 Subscriber .

Subscriber<Integer> mSubscriber = new Subscriber<Integer>() {
        // NOTE THAT ALL THESE ARE CALLED BY THE OBSERVABLE
        @Override
        public void onCompleted() {
            // called when all objects are emitted
            System.out.println("onCompleted called!");
        }

        @Override
        public void onError(Throwable throwable) {
            // called when an error occurs during emitting objects
            System.out.println("onError called!");
        }

        @Override
        public void onNext(Integer integer) {
            // called for each object that is emitted
            System.out.println("onNext called with: " + integer);
        }
    };

Subscriber 는 일반이기도하고 모든 개체를 지원할 수 있습니다. Subscriber 는 관찰 가능 개체에 대한 subscribe 메서드를 호출하여 관찰 가능 개체에 Subscriber 해야합니다.

integerObservable.subscribe(mSubscriber);

위의 명령을 실행하면 다음과 같은 결과가 출력됩니다.

onNext called with: 1
onNext called with: 2
onNext called with: 3
onCompleted called!

대리석 다이어그램 이해하기

Observable은 단지 사건의 흐름으로 생각할 수 있습니다. Observable을 정의하면 세 개의 리스너, onNext, onComplete 및 onError가 있습니다. observable이 새 값을 얻을 때마다 onNext가 호출됩니다. Observable 부모가 더 이상의 값을 생성했음을 알리는 경우 onComplete가 호출됩니다. Observable 체인 실행 중에 예외가 발생하면 onError가 호출됩니다. Rx에서 연산자를 표시하기 위해 대리석 다이어그램을 사용하여 특정 작업에 어떤 일이 발생하는지 표시합니다. 다음은 간단한 관측 가능 연산자 "Just"의 예입니다.

대리석 다이어그램의 예

대리석 다이어그램에는 수행중인 작업을 나타내는 가로 블록, 완료된 이벤트를 나타내는 세로 막대, 오류를 나타내는 X 등이 있으며 다른 모든 모양은 값을 나타냅니다. 이를 염두에두고 "Just"가 우리의 가치를 받아 onNext를 수행 한 다음 onComplete로 끝내는 것을 볼 수 있습니다. 그냥 "그냥"더 많은 작업이 있습니다. ReactiveX 프로젝트의 일부인 모든 작업과 RexX 사이트RxJava 구현을 볼 수 있습니다 . RxMarbles 사이트 를 통한 대화 형 대리석 다이어그램도 있습니다 .



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow