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