refactor config

This commit is contained in:
Denis Savosin
2024-10-15 13:30:15 +07:00
parent 5be84b4b1a
commit 3b34a2989d
3 changed files with 25 additions and 43 deletions

View File

@@ -1,5 +1,8 @@
package com.github.dannecron.demo.config package com.github.dannecron.demo.config
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.github.dannecron.demo.config.properties.KafkaProperties import com.github.dannecron.demo.config.properties.KafkaProperties
import com.github.dannecron.demo.config.properties.ValidationProperties import com.github.dannecron.demo.config.properties.ValidationProperties
import com.github.dannecron.demo.providers.* import com.github.dannecron.demo.providers.*
@@ -12,9 +15,6 @@ import com.github.dannecron.demo.services.database.product.ProductServiceImpl
import com.github.dannecron.demo.services.kafka.Producer import com.github.dannecron.demo.services.kafka.Producer
import com.github.dannecron.demo.services.validation.SchemaValidator import com.github.dannecron.demo.services.validation.SchemaValidator
import com.github.dannecron.demo.services.validation.SchemaValidatorImp import com.github.dannecron.demo.services.validation.SchemaValidatorImp
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import io.micrometer.observation.ObservationRegistry import io.micrometer.observation.ObservationRegistry
import io.micrometer.observation.aop.ObservedAspect import io.micrometer.observation.aop.ObservedAspect
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter
@@ -30,16 +30,13 @@ class AppConfig(
@Autowired private val kafkaProperties: KafkaProperties, @Autowired private val kafkaProperties: KafkaProperties,
) { ) {
@Bean @Bean
fun objectMapper(): ObjectMapper { fun objectMapper(): ObjectMapper = ObjectMapper().apply {
val objectMapper = ObjectMapper() registerModules(JavaTimeModule())
objectMapper.registerModules(JavaTimeModule()) configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper
} }
@Bean @Bean
fun shopProvider(): ShopProvider = com.github.dannecron.demo.providers.MockedShopProvider() fun shopProvider(): ShopProvider = MockedShopProvider()
@Bean @Bean
fun productService( fun productService(
@@ -66,15 +63,11 @@ class AppConfig(
): SchemaValidator = SchemaValidatorImp(validationProperties.schema) ): SchemaValidator = SchemaValidatorImp(validationProperties.schema)
@Bean @Bean
fun otlpHttpSpanExporter(@Value("\${tracing.url}") url: String): OtlpHttpSpanExporter { fun otlpHttpSpanExporter(@Value("\${tracing.url}") url: String) = OtlpHttpSpanExporter.builder()
return OtlpHttpSpanExporter.builder()
.setEndpoint(url) .setEndpoint(url)
.build() .build()
}
@Bean @Bean
fun observedAspect(@Autowired observationRegistry: ObservationRegistry): ObservedAspect { fun observedAspect(@Autowired observationRegistry: ObservationRegistry) = ObservedAspect(observationRegistry)
return ObservedAspect(observationRegistry)
}
} }

View File

@@ -27,23 +27,16 @@ class KafkaConsumerConfig(
) )
@Bean @Bean
fun consumerFactory(): ConsumerFactory<String, String> { fun consumerFactory(): ConsumerFactory<String, String> = DefaultKafkaConsumerFactory(mapOf(
val configs = mapOf(
ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperties.bootstrapServers, ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperties.bootstrapServers,
ConsumerConfig.GROUP_ID_CONFIG to kafkaProperties.consumer.groupId, ConsumerConfig.GROUP_ID_CONFIG to kafkaProperties.consumer.groupId,
ConsumerConfig.AUTO_OFFSET_RESET_CONFIG to kafkaProperties.consumer.autoOffsetReset, ConsumerConfig.AUTO_OFFSET_RESET_CONFIG to kafkaProperties.consumer.autoOffsetReset,
ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java, ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java,
ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java
) ))
return DefaultKafkaConsumerFactory(configs)
}
@Bean @Bean
fun kafkaListenerContainerFactory(): ConcurrentKafkaListenerContainerFactory<String, String> { fun kafkaListenerContainerFactory() = ConcurrentKafkaListenerContainerFactory<String, String>().apply {
val factory = ConcurrentKafkaListenerContainerFactory<String, String>() consumerFactory = consumerFactory()
factory.consumerFactory = consumerFactory()
return factory
} }
} }

View File

@@ -18,15 +18,11 @@ class KafkaProducerConfig(
@Autowired val kafkaProperties: KafkaProperties @Autowired val kafkaProperties: KafkaProperties
) { ) {
@Bean @Bean
fun producerFactory(): ProducerFactory<String, Any> { fun producerFactory(): ProducerFactory<String, Any> = DefaultKafkaProducerFactory(mapOf(
val configProps: MutableMap<String, Any> = HashMap() ProducerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperties.bootstrapServers,
ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG to StringSerializer::class.java,
configProps[ProducerConfig.BOOTSTRAP_SERVERS_CONFIG] = kafkaProperties.bootstrapServers ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG to StringSerializer::class.java,
configProps[ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java ))
configProps[ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java
return DefaultKafkaProducerFactory(configProps)
}
@Bean @Bean
fun kafkaTemplate(): KafkaTemplate<String, Any> = KafkaTemplate( fun kafkaTemplate(): KafkaTemplate<String, Any> = KafkaTemplate(