mirror of
https://github.com/Dannecron/spring-boot-demo.git
synced 2025-12-26 00:32:34 +03:00
refactor config
This commit is contained in:
@@ -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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user