Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

comunicação assincrona não está funcionando

estou fazendo um projeto em micro serviço muito parecido do curso,

essa é a conexao de um end point do microsserviço de usuario para videos.

@FeignClient("videos-ms") @Component public interface VideoClient {

@RequestMapping(method = RequestMethod.PUT, value = "/videos/{id}/assistido")
void atualizaVideo(@PathVariable Long id);

}

service

@Autowired private VideoClient videoClient;

public void confirmarVideo(Long id) {

    Usuario usuario = usuarioRepository.getReferenceById(id);

    usuario.setPermissao(Permissao.ACEITO_ASSISTIR);
    usuarioRepository.save(usuario);

    videoClient.atualizaVideo(usuario.getVideoId());

}

o problema é o seguinte, na hora da injeção de dependências ele fala que precisa ser um @Bean gerenciado pelo spring, ja fica diferente do curso creio que por versao. se não fizer isso não funciona o projeto.

ai coloquei isso na camada de configuração:

@Bean public VideoClient videoClient() {

    return new VideoClient() {
        @Override
        public void atualizaVideo(Long id) {
        }
    };
}

como é um interface ele pede par a sobrescrever, ai a conexão que devia fazer de um micro serviço para outro acaba falhando , não sei se é por causa dessa sobrescrita. alguem pode ajudar?

1 resposta
solução!

ja achei aqui na nova versão do spring feign é preciso colocar a anotação @EnableFeignClient no controller ai ele permite o autowired na interface sem problemas

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software