Бин работает только тогда, когда он вводится как метод paramater - PullRequest
0 голосов
/ 01 февраля 2020

Я работаю над клиентским приложением, которое использует RestTemplate для связи с REST API.

RestTemplate настроен следующим образом:

@Configuration
class RestTemplateConfiguration {

    @Bean
    fun restTemplate(restTemplateBuilder: RestTemplateBuilder): RestTemplate {
        return restTemplateBuilder.build()
    }
}

Но я также уже пытался настроить его следующим образом:

@Configuration
class RestTemplateConfiguration {

    @Bean
    fun restTemplate(restTemplateBuilder: RestTemplateBuilder): RestTemplate {
        val restTemplate = RestTemplate()
        val converter = MappingJackson2HttpMessageConverter ()
        converter.objectMapper = ObjectMapper()
        restTemplate.messageConverters.add(converter)
        return restTemplate
    }
}

Итак, когда компонент вводится как метод Параметр, только для целей тестирования, работает нормально:

@GetMapping
fun getAll(restTemplate: RestTemplate, model: Model): String {
    val response = restTemplate.exchange("http://localhost:8080/api/metagame/archetypes", HttpMethod.GET, null,
            object : TypeReferences.PagedModelType<ArchetypeModel>() {})

    val archetypes = response.body?.content ?: ArrayList<EntityModel<ArchetypeModel>>()

    model.addAttribute("archetypes", archetypes)

    return "metagame/archetypes/index"
}

Но каждый раз, когда он вводится как параметр конструктора, ответ приходит пустым:

class ArchetypeController(val restTemplate: RestTemplate)

Является ли это Kotlin проблема или проблема конфигурации ...? Поскольку Spring не выдаёт мне сообщение об ошибке, я полностью потерян: /

...