mirror of
https://github.com/Dannecron/spring-boot-demo.git
synced 2025-12-25 16:22:35 +03:00
refactor config
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
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.ValidationProperties
|
||||
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.validation.SchemaValidator
|
||||
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.aop.ObservedAspect
|
||||
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter
|
||||
@@ -30,16 +30,13 @@ class AppConfig(
|
||||
@Autowired private val kafkaProperties: KafkaProperties,
|
||||
) {
|
||||
@Bean
|
||||
fun objectMapper(): ObjectMapper {
|
||||
val objectMapper = ObjectMapper()
|
||||
objectMapper.registerModules(JavaTimeModule())
|
||||
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
|
||||
|
||||
return objectMapper
|
||||
fun objectMapper(): ObjectMapper = ObjectMapper().apply {
|
||||
registerModules(JavaTimeModule())
|
||||
configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
|
||||
}
|
||||
|
||||
@Bean
|
||||
fun shopProvider(): ShopProvider = com.github.dannecron.demo.providers.MockedShopProvider()
|
||||
fun shopProvider(): ShopProvider = MockedShopProvider()
|
||||
|
||||
@Bean
|
||||
fun productService(
|
||||
@@ -66,15 +63,11 @@ class AppConfig(
|
||||
): SchemaValidator = SchemaValidatorImp(validationProperties.schema)
|
||||
|
||||
@Bean
|
||||
fun otlpHttpSpanExporter(@Value("\${tracing.url}") url: String): OtlpHttpSpanExporter {
|
||||
return OtlpHttpSpanExporter.builder()
|
||||
.setEndpoint(url)
|
||||
.build()
|
||||
}
|
||||
fun otlpHttpSpanExporter(@Value("\${tracing.url}") url: String) = OtlpHttpSpanExporter.builder()
|
||||
.setEndpoint(url)
|
||||
.build()
|
||||
|
||||
@Bean
|
||||
fun observedAspect(@Autowired observationRegistry: ObservationRegistry): ObservedAspect {
|
||||
return ObservedAspect(observationRegistry)
|
||||
}
|
||||
fun observedAspect(@Autowired observationRegistry: ObservationRegistry) = ObservedAspect(observationRegistry)
|
||||
}
|
||||
|
||||
|
||||
@@ -27,23 +27,16 @@ class KafkaConsumerConfig(
|
||||
)
|
||||
|
||||
@Bean
|
||||
fun consumerFactory(): ConsumerFactory<String, String> {
|
||||
val configs = mapOf(
|
||||
ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperties.bootstrapServers,
|
||||
ConsumerConfig.GROUP_ID_CONFIG to kafkaProperties.consumer.groupId,
|
||||
ConsumerConfig.AUTO_OFFSET_RESET_CONFIG to kafkaProperties.consumer.autoOffsetReset,
|
||||
ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java,
|
||||
ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java
|
||||
)
|
||||
|
||||
return DefaultKafkaConsumerFactory(configs)
|
||||
}
|
||||
fun consumerFactory(): ConsumerFactory<String, String> = DefaultKafkaConsumerFactory(mapOf(
|
||||
ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperties.bootstrapServers,
|
||||
ConsumerConfig.GROUP_ID_CONFIG to kafkaProperties.consumer.groupId,
|
||||
ConsumerConfig.AUTO_OFFSET_RESET_CONFIG to kafkaProperties.consumer.autoOffsetReset,
|
||||
ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java,
|
||||
ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java
|
||||
))
|
||||
|
||||
@Bean
|
||||
fun kafkaListenerContainerFactory(): ConcurrentKafkaListenerContainerFactory<String, String> {
|
||||
val factory = ConcurrentKafkaListenerContainerFactory<String, String>()
|
||||
factory.consumerFactory = consumerFactory()
|
||||
|
||||
return factory
|
||||
fun kafkaListenerContainerFactory() = ConcurrentKafkaListenerContainerFactory<String, String>().apply {
|
||||
consumerFactory = consumerFactory()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,15 +18,11 @@ class KafkaProducerConfig(
|
||||
@Autowired val kafkaProperties: KafkaProperties
|
||||
) {
|
||||
@Bean
|
||||
fun producerFactory(): ProducerFactory<String, Any> {
|
||||
val configProps: MutableMap<String, Any> = HashMap()
|
||||
|
||||
configProps[ProducerConfig.BOOTSTRAP_SERVERS_CONFIG] = kafkaProperties.bootstrapServers
|
||||
configProps[ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java
|
||||
configProps[ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java
|
||||
|
||||
return DefaultKafkaProducerFactory(configProps)
|
||||
}
|
||||
fun producerFactory(): ProducerFactory<String, Any> = DefaultKafkaProducerFactory(mapOf(
|
||||
ProducerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperties.bootstrapServers,
|
||||
ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG to StringSerializer::class.java,
|
||||
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG to StringSerializer::class.java,
|
||||
))
|
||||
|
||||
@Bean
|
||||
fun kafkaTemplate(): KafkaTemplate<String, Any> = KafkaTemplate(
|
||||
|
||||
Reference in New Issue
Block a user