- Add maven dependency:
<dependency>
<groupId>de.adorsys.lock-persistence</groupId>
<artifactId>lock-persistence-core</artifactId>
<version>${lock-persistence.version}</version>
</dependency>
- Add maven dependency:
<dependency>
<groupId>de.adorsys.lock-persistence</groupId>
<artifactId>lock-persistence-jpa</artifactId>
<version>${lock-persistence.version}</version>
</dependency>
-
Add
@EnableJpaLockPersistence
annotation to your spring boot configuration class -
Make sure your database contains following table definition named
lock_persistence
within default schema:
CREATE TABLE lock_persistence (
id SERIAL PRIMARY KEY,
name VARCHAR(256),
value VARCHAR(36),
expires TIMESTAMP
);
(example for postgres)
continue with 5.
- Add maven dependency:
<dependency>
<groupId>de.adorsys.lock-persistence</groupId>
<artifactId>lock-persistence-mongo</artifactId>
<version>${lock-persistence.version}</version>
</dependency>
- Add
@EnableMongoLockPersistence
annotation to your spring boot configuration class
continue with 5.
- Make sure you're providing a Bean for a
LockClient
instance:
@Bean
LockClient lockClient(LockService lockService) {
return new SimpleLockClient("<your application's lock name>", lockService);
}
- Use the injected
LockClient
instance in your code:
lockClient.executeIfOwned("<your concrete lock name>", new Runnable() {
@Override
public void run() {
... your stuff to be locked for concurrent access ...
}
});