1
resposta

Alguém teve esse erro Could not autowire. No beans of 'String' type found.?

Tive o mesmo erro.

@Service
class TopicoService(
    private var topicos: List<Topico> = ArrayList(),
    private val topicoViewMapper: TopicoViewMapper,
    private val topicoFormMapper: TopicoFormMapper,
    private val notFoundMessage : String = "Tópico não encontrado"
) {

    fun listar(): List<TopicoView> {
        return topicos.stream().map { t ->
            topicoViewMapper.map(t)
        }.collect(Collectors.toList())
    }

    fun buscarPorId(id: Long): TopicoView {
        return topicoViewMapper.map(topicos.stream().filter { t -> t.id == id }.findFirst().get())
    }

    fun cadastrar(form: NovoTopicoForm): TopicoView {
        val topico = topicoFormMapper.map(form)
        topico.id = topicos.size.toLong() + 1
        topicos = topicos.plus(topico)
        return topicoViewMapper.map(topico)
    }

    fun atualizar(form: AtualizacaoTopicoForm): TopicoView {
        val topico = topicos.stream().filter { t -> t.id == form.id }.findFirst().get()
        val topicoAtualizado = Topico(
            id = form.id,
            titulo = form.titulo,
            mensagem = form.mensagem,
            autor = topico.autor,
            curso = topico.curso,
            respostas = topico.respostas,
            status = topico.status,
            dataCriacao = topico.dataCriacao
        )
        topicos = topicos.minus(topico).plus(topicoAtualizado)
        return topicoViewMapper.map(topicoAtualizado)
    }

    fun deletar(id: Long) {
        val topico =  topicos.stream().filter { t ->
            t.id == id
        }.findFirst()
         .orElseThrow(ForumNotFoundException(notFoundMessage))
        topicos = topicos.minus(topico)
    }
}
1 resposta

Oi Pedro,

Acho que é porque você colocou uma String no construtor(private val notFoundMessage : String = "Tópico não encontrado") e com isso o Spring vai tentar injetar essa String.