Skip to content

yanyanho/web3j-spring-boot-starter

 
 

Repository files navigation

web3j Spring Boot Starter

Build Status

Integrate web3j into your Spring Boot applications via Spring's dependency injection.

Getting started

A sample application is available here

To use, create a new Spring Boot Application, and include the following dependencies:

Maven:

<dependency>
    <groupId>org.web3j</groupId>
    <artifactId>web3j-spring-boot-starter</artifactId>
    <version>1.6.0</version>
</dependency>

Gradle:

compile ('org.web3j:web3j-spring-boot-starter:1.6.0')

Now Spring can inject web3j instances for you where ever you need them:

@Autowired
private Web3j web3j;

No additional configuration is required if you want to connect via HTTP to the default URL http://localhost:8545.

Otherwise simply add the address of the endpoint in your application properties:

# An infura endpoint
web3j.client-address = https://rinkeby.infura.io/

# Or, an IPC endpoing
web3j.client-address = /path/to/file.ipc

Admin clients

If you wish to make use of the personal module methods that are common to both Parity and Geth
to manage accounts, enable the admin client:

web3j.admin-client = true

Then Spring can inject admin clients:

@Autowired
private Admin admin;

HTTP client configuration

Some Ethereum operations take longer than the default HTTP timeout set by the OkHttp3 library used by web3j. To configure those timeouts set the web3j httpTimeoutSeconds property:

web3j.httpTimeoutSeconds = 600  

This sets all three OkHttp3 timeouts: connect, read, and write.

Valid values are any non-negative integer.

A value of '0' means: no timeout.

Note: This is not required for transacting with web3j.

Further information

For further information on web3j, please refer to the web3j home page.

About

Spring Boot Starter for web3j

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 97.6%
  • JavaScript 2.1%
  • Shell 0.3%