Spring Boot redis set expire

Привет) У меня есть приложение, в котором мне нужно связать пользователя с кодом верификации, чтобы код умирал через сутки. Пока, я пользуюсь такой вот штукой:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.3.3.RELEASE</version>
        </dependency>
//зависимость в pom.xml

------------------------------------------

@Repository
public interface ActivationCodeRepo extends JpaRepository<ActivationCode, String> {
}

-------------------------------------------

@Data
@RedisHash
public class ActivationCode {

    @Id
    private String code;
    private Long userId;
    private LocalDateTime expiration = LocalDateTime.now().plusDays(1L);

}


----------------------------------------------

//и метод, активирующий юзера по этому коду

public boolean activateUser(String code) {

        Optional<ActivationCode> codeFromDb = activationCodeRepo.findById(code);

        if (!codeFromDb.isPresent()) {
            return false;

        } else if (codeFromDb.get().getExpiration().isBefore(LocalDateTime.now())) {

            activationCodeRepo.delete(codeFromDb.get());
            return false;
        }

        boolean b = userService.activateUser(codeFromDb.get().getUserId());
        activationCodeRepo.delete(codeFromDb.get());

        return b;
    }

Само собой, я знаю, что в redis можно добавить необязательный параметр set foo bar ex 360 (seconds)

Но как то можно сделать в SpringBoot?


Ответы (0 шт):