mp
03/19/2018, 1:04 PM@EnableKafka
@EnableAsync
@Configuration
class KafkaConfig<T>(
@Autowired val objectMapper: ObjectMapper,
@Value("\${kafka.bootstrap-servers}") val bootstrapServers: String,
@Value("\${kafka.consumer.group-id}") val groupId: String,
@Value("\${kafka.consumer.auto-offset-reset}") val autoOffsetReset: String
) {
@Bean
fun consumerFactory(): ConsumerFactory<String, T> = DefaultKafkaConsumerFactory(
consumerConfigs(),
JsonDeserializer(String::class.java, objectMapper),
JsonDeserializer(T::class.java, objectMapper)
)
}
So issue is - T as non a expression can`t provide ::class.java value
Can any one help with documentation topic what I should start from?Evgeniy Zaharov
03/19/2018, 1:26 PMcompanion object
factory method to help create instance of KafkaConfig with right class fieldEvgeniy Zaharov
03/19/2018, 1:26 PMclass KafkaConfig<T>(private val clazz: Class<T>) {
fun testPrint() {
println(clazz)
}
companion object {
inline operator fun <reified R> invoke(): KafkaConfig<R> {
return KafkaConfig(clazz = R::class.java)
}
}
}
fun main(args: Array<String>) {
println(KafkaConfig<String>().testPrint())
}
lex
03/21/2018, 4:01 AMlex
03/21/2018, 4:02 AM