import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.core.ConsumerFactory;
+import org.springframework.scheduling.annotation.EnableAsync;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.Executor;
@Configuration
+@EnableAsync
@EnableConfigurationProperties({ KafkaProperties.class, ApplicationProperties.class })
public class ApplicationConfiguration
{
@Bean
public SimpleConsumer endlessConsumer(
Consumer<String, String> kafkaConsumer,
- ExecutorService executor,
KafkaProperties kafkaProperties,
ApplicationProperties applicationProperties)
{
return
new SimpleConsumer(
- executor,
kafkaProperties.getClientId(),
applicationProperties.getTopic(),
kafkaConsumer);
}
- @Bean
- public ExecutorService executor()
- {
- return Executors.newSingleThreadExecutor();
- }
-
@Bean(destroyMethod = "close")
- public Consumer<String, String> kafkaConsumer(ConsumerFactory<String, String> factory)
+ public Consumer<?, ?> kafkaConsumer(ConsumerFactory<?, ?> factory)
{
return factory.createConsumer();
}