import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.event.EventListener;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.SendResult;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.EnableAsync;
import java.util.concurrent.CompletableFuture;
@Slf4j
+@EnableAsync
// tag::supersimple[]
@SpringBootApplication
-public class ExampleProducer implements ApplicationRunner
+public class ExampleProducer
{
@Autowired
KafkaTemplate<String, String> kafkaTemplate;
- @Override
- public void run(ApplicationArguments args)
+ // end::supersimple[]
+ @Async
+ // tag::supersimple[]
+ public void run()
{
for (int i = 0; true; i++)
{
// tag::supersimple[]
}
}
+ // end::supersimple[]
+ @EventListener(ApplicationReadyEvent.class)
+ public void onApplicationReady() {
+ this.run();
+ }
+
+ // tag::supersimple[]
public static void main(String[] args)
{
SpringApplication.run(ExampleProducer.class, args);