Java

    1. dependencies {
    2. ...
    3. // Dapr's core SDK with all features, except Actors.
    4. compile('io.dapr:dapr-sdk:1.4.0')
    5. // Dapr's SDK for Actors (optional).
    6. compile('io.dapr:dapr-sdk-actors:1.4.0')
    7. // Dapr's SDK integration with SpringBoot (optional).
    8. compile('io.dapr:dapr-sdk-springboot:1.4.0')
    9. }
    1. <dependency>
    2. <groupId>com.squareup.okhttp3</groupId>
    3. <artifactId>okhttp</artifactId>
    4. <version>1.3.1</version>
    5. </dependency>
    • Visit for code samples and instructions to try out service invocation

    Save & get application state

    1. import io.dapr.client.DaprClient;
    2. import io.dapr.client.DaprClientBuilder;
    3. import io.dapr.client.domain.State;
    4. import reactor.core.publisher.Mono;
    5. try (DaprClient client = (new DaprClientBuilder()).build()) {
    6. // Save state
    7. client.saveState(STATE_STORE_NAME, FIRST_KEY_NAME, myClass).block();
    8. // Get state
    9. // Delete state
    10. client.deleteState(STATE_STORE_NAME, FIRST_KEY_NAME).block();
    11. }
    • For a full list of state operations visit .
    • Visit Java SDK examples for code samples and instructions to try out state management
    Publish messages
    1. import io.dapr.client.DaprClient;
    2. import io.dapr.client.DaprClientBuilder;
    3. import io.dapr.client.domain.Metadata;
    4. import static java.util.Collections.singletonMap;
    5. try (DaprClient client = (new DaprClientBuilder()).build()) {
    6. client.publishEvent(PUBSUB_NAME, TOPIC_NAME, message, singletonMap(Metadata.TTL_IN_SECONDS, MESSAGE_TTL_IN_SECONDS)).block();
    7. }
    Subscribe to messages
    • For a full list of state operations visit .
    • Visit Java SDK examples for code samples and instructions to try out pub/sub

    Interact with output bindings

    1. import io.dapr.client.DaprClient;
    2. import io.dapr.client.DaprClientBuilder;
    3. try (DaprClient client = (new DaprClientBuilder()).build()) {
    4. // sending a class with message; BINDING_OPERATION="create"
    5. client.invokeBinding(BINDING_NAME, BINDING_OPERATION, myClass).block();
    6. // sending a plain string
    7. client.invokeBinding(BINDING_NAME, BINDING_OPERATION, message).block();
    • For a full guide on output bindings visit How-To: Use bindings.
    • Visit for code samples and instructions to try out output bindings
    1. import com.fasterxml.jackson.databind.ObjectMapper;
    2. import io.dapr.client.DaprClient;
    3. import io.dapr.client.DaprClientBuilder;
    4. try (DaprClient client = (new DaprClientBuilder()).build()) {
    5. Map<String, String> secret = client.getSecret(SECRET_STORE_NAME, secretKey).block();
    6. System.out.println(JSON_SERIALIZER.writeValueAsString(secret));
    7. }
    • For a full guide on secrets visit How-To: Retrieve secrets.
    • Visit for code samples and instructions to try out retrieving secrets

    Actors

    • For a full guide on actors visit .
    • Visit Java SDK examples for code samples and instructions to try actors
    1. import io.dapr.client.DaprClientBuilder;
    2. import io.dapr.client.DaprPreviewClient;
    3. import io.dapr.client.domain.ConfigurationItem;
    4. import io.dapr.client.domain.GetConfigurationRequest;
    5. import io.dapr.client.domain.SubscribeConfigurationRequest;
    6. import reactor.core.publisher.Flux;
    7. import reactor.core.publisher.Mono;
    8. try (DaprPreviewClient client = (new DaprClientBuilder()).buildPreviewClient()) {
    9. // Get configuration for a single key
    10. Mono<ConfigurationItem> item = client.getConfiguration(CONFIG_STORE_NAME, CONFIG_KEY).block();
    11. // Get Configurations for multiple keys
    12. Mono<List<ConfigurationItem>> items =
    13. client.getConfiguration(CONFIG_STORE_NAME, CONFIG_KEY_1, CONFIG_KEY_2);
    14. // Susbcribe to Confifuration changes
    15. Flux<List<ConfigurationItem>> outFlux = client.subscribeToConfiguration(CONFIG_STORE_NAME, CONFIG_KEY_1, CONFIG_KEY_2);
    16. outFlux.subscribe(configItems -> configItems.forEach(...));
    17. }
    • For a full list of configuration operations visit .
    • Visit Java SDK examples for code samples and instructions to try out different configuration operations.