Java
Dapr offers a variety of packages to help with the development of Java applications. Using them you can create Java clients, servers, and virtual actors with Dapr.
Prerequisites
- Dapr CLI installed
- Initialized Dapr environment
- JDK 11 or above - the published jars are compatible with Java 8:
- Install one of the following build tools for Java:
Import Dapr’s Java SDK
Next, import the Java SDK packages to get started. Select your preferred build tool to learn how to import.
For a Maven project, add the following to your pom.xml
file:
<project>
...
<dependencies>
...
<!-- Dapr's core SDK with all features, except Actors. -->
<dependency>
<groupId>io.dapr</groupId>
<artifactId>dapr-sdk</artifactId>
<version>1.10.0</version>
</dependency>
<!-- Dapr's SDK for Actors (optional). -->
<dependency>
<groupId>io.dapr</groupId>
<artifactId>dapr-sdk-actors</artifactId>
<version>1.10.0</version>
</dependency>
<!-- Dapr's SDK integration with SpringBoot (optional). -->
<dependency>
<groupId>io.dapr</groupId>
<artifactId>dapr-sdk-springboot</artifactId>
<version>1.10.0</version>
</dependency>
...
</dependencies>
...
</project>
For a Gradle project, add the following to your build.gradle
file:
dependencies {
...
// Dapr's core SDK with all features, except Actors.
compile('io.dapr:dapr-sdk:1.10.0')
// Dapr's SDK for Actors (optional).
compile('io.dapr:dapr-sdk-actors:1.10.0')
// Dapr's SDK integration with SpringBoot (optional).
compile('io.dapr:dapr-sdk-springboot:1.10.0')
}
If you are also using Spring Boot, you may run into a common issue where the OkHttp
version that the Dapr SDK uses conflicts with the one specified in the Spring Boot Bill of Materials.
You can fix this by specifying a compatible OkHttp
version in your project to match the version that the Dapr SDK uses:
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>1.10.0</version>
</dependency>
Try it out
Put the Dapr Java SDK to the test. Walk through the Java quickstarts and tutorials to see Dapr in action:
SDK samples | Description |
---|---|
Quickstarts | Experience Dapr’s API building blocks in just a few minutes using the Java SDK. |
SDK samples | Clone the SDK repo to try out some examples and get started. |
import io.dapr.client.DaprClient;
import io.dapr.client.DaprClientBuilder;
try (DaprClient client = (new DaprClientBuilder()).build()) {
// sending a class with message; BINDING_OPERATION="create"
client.invokeBinding(BINDING_NAME, BINDING_OPERATION, myClass).block();
// sending a plain string
client.invokeBinding(BINDING_NAME, BINDING_OPERATION, message).block();
}
- For a full guide on output bindings visit How-To: Output bindings.
- Visit Java SDK examples for code samples and instructions to try out output bindings.
Available packages
Client
Create Java clients that interact with a Dapr sidecar and other Dapr applications.
Workflow
Create and manage workflows that work with other Dapr APIs in Java.
Getting started with the Dapr client Java SDK
How to get up and running with the Dapr Java SDK
Workflow
How to get up and running with the Dapr Workflow extension