Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Alem do arquivo JAR, existe outra necessidade para o backend?

Estou querendo começar este curso e já me adiantei dando uma olhada nos primeiros vídeos sobre o projeto e sobre a configuração do ambiente!

Vi que é indicado rodarmos uma aplicação local, fornecida por um arquivo JAR. Entendi que essa aplicação (no arquivo JAR) será o backend consumido pela aplicação React (aplicação que será construída no curso).

Essa aplicação (arquivo JAR) acessa algum banco de dados?

Se acessar algum banco de dados, esse banco de dados não precisa estar instalado e configurado em minha máquina?

3 respostas
solução

Boa noite, Joaquim! Como vai?

A API irá sim acessar um banco de dados MySQL obrigatoriamente na versão 5.7, como visto nessa atividade.

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Pois é, já tinha visto essa atividade, mas alem de ser uma atividade da aula 3 (ainda nem comecei o curso), lá diz que é opcional!

Minha preocupação é que reparei nos fóruns (inclusive posts recentes), que muita gente tá tendo problema pra subir o backend (arquivo JAR).

Nas primeiras atividade só fala para fazer o download do arquivo JAR e aconselha a rodar sempre local, porém não fala nada sobre instalação de outros aplicativos (MySql por exemplo) que talvez sejam pre-requisitos para subir a aplicação do JAR.

Será que não está faltando algo na aula 01 (Criando e configurando o projeto), Atividade 02 (Configuração ambiente)?

Fala, pessoal.

Aproveitando a oportunidade, gostaria de compartilhar o ambiente que montei aqui pra fazer funcionar o backend em Java. Esse backend é uma aplicação SpringBoot simples que prove dois endpoints, um para autores e outro para livros, ambos com URIs para criação e listagem. Os fontes podem ser encontrados aqui: https://github.com/alberto-alura/cdcadmin-api. Essa aplicação usa um banco de dados MySQL para a persistência dos dados.

Pra facilitar a minha vida aqui eu usei o Vagrant para subir uma máquina virtual Ubuntu e instalar o MySQL nela. Com isso eu isolo esse ambiente e não preciso instalar um MySQL em meu ambiente local.

Instalação do Vagrant: https://www.vagrantup.com/docs/installation/

Depos de instalado, vamos baixar uma box Ubuntu. Para isso, crie um diretório e nesse diretório crie um arquivo 'Vagrantfile' com o seguinte conteúdo:

Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/trusty64"
    config.vm.network "private_network", ip: "192.168.55.55"
end

Via terminal, navegue até o diretório recém criado e digite o comando vagrant up. Esse comando irá ler o arquivo e com base nas informações irá baixar a imagem do Ubuntu e logo depois iniciar a VM atendendo no ip 192.168.55.55.

Depois de finalizado o processo, digite o comando vagrant ssh para fazer login no Ubuntu que acabou de ser iniciado. Uma vez logado é só seguir os passos descritos aqui https://cursos.alura.com.br/course/react/task/19739.

Uma vez instalado o MySQL, é necessário configurá-lo para que inicie no endereço ip da VM e também dar privilégios de acesso ao banco. Assim:

Edite o arquivo /etc/mysql/my.cnf e altere a propriedade bind-address para 192.168.55.55.

Acesso o MySQL com o comando mysql -u root e libere o acesso para a máquina cliente, que no caso é a sua própria estação de trabalho. Nesse caso, como a sua estação de trabalho é a maquina que hospeda o Vagrant e a máquina virtual rodando, a sua estação recebe o endereço ip 192.168.55.1 (a configuração da rede privada faz isso), assim:

GRANT ALL ON *.* to root@'192.168.55.1' IDENTIFIED BY '';

FLUSH PRIVILEGES;

Reinicie o servidor MySQL, assim: /etc/init.d/mysql restart.

Pronto, o MySQL está instalado e configurado para aceitar conexões remotas provenientes da sua estação de trabalho.

Agora falta configurar a app SpringBoot para "apontar" para o MySQL. Aplicações SpringBoot tem arquivos de configuração (arquivos de propriedades basicamente) onde são colocadas informações como os dados de acesso a base de dados. Como neste caso temos uma aplicação já empacotada não temos acesso ao arquivo de configuração para mudá-lo (como temos acesso ao github poderíamos até fazer o clone do projeto, mudar esse arquivo e regerar o pacote), porém podemos passar o camninho de um arquivo alterado com as nossas configurações. Obtive o arquivo original aqui https://github.com/alberto-alura/cdcadmin-api/blob/master/src/main/resources/application.properties e fiz as alterações necessárias para apontar para o meu ambiente (que foi basicamente a URL do MySQL).

Iniciei a app SpringBoot assim:

java -jar cdcreact-1.0.0-SNAPSHOT.jar --spring.config.location=my.properties.

A aplicação sobe sem erros. O banco de dados cdc_react é criado no meu MySQL e nele as tabelas necessárias.

Espero ter sido útil.

Abs