Application.java:

@SpringBootApplication
@EnableScheduling
public class Application {
// ...
}

ScheduledTasks.java:

@Component
public class ScheduledTasks {

  private final ApplicationEventPublisher eventPublisher;
  // ...

  @Scheduled(cron = "${asimiotech.tasks.cron.fire-refresh-event}")
  public void publishRefreshEvent() {
    log.info("Publishing {} at {}", RefreshEvent.class.getSimpleName(), new Date());
    this.eventPublisher.publishEvent(new RefreshEvent(
      this,
      RefreshEvent.class.getSimpleName(),
      String.format("Refreshing Beans annotated with %s if relevant properties changed", RefreshScope.class.getSimpleName())
    ));
  }
// ...
}

application.yml:

asimiotech:
  tasks:
    cron:
      fire-refresh-event: "0 0/5 * * * *"  # Every 5, 10, 15, ... min of the hour

pom.xml:

<dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter</artifactId>
  </dependency>
<!-- ... -->
</dependencies>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>${spring.cloud.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
<!-- ... -->
</dependencyManagement>