Curso Spring Boot: Eclipse

  • Ingresamos a la dirección https://spring.io/tools
  • Descargamos Eclipse
  • Descomprimimos el archivo
  • Ingresamos a la carpeta y buscamos el archivo

  • Le damos doble clic
  • Nos abre una ventana donde debemos seleccionar la carpeta que va a funcionar coo Workspace

  • Le decimos que lo utilice por defecto
  • Lo ejecutamos y nos abre eclipse con Spring Boot
  • Le damos crear nuevo proyecto Spring
  • Modificamos los datos
  • Nos crea la aplicación
  • Le damos clic derecho -> Run As -> Spring Boot App
  • Si no da error puede ser por que tenemos tomcat instalado y debemos detenerlo
service tomcat9 stop
  • Le volvemos a dar iniciar y nos indica que la aplicación esta corriendo en el puerto 8080
  • Abrimos el navegador en http://localhost:8080
  • Vemos una página de error, esto por que como no hemos programada nada no tiene nada que mostrar
  • Ahora porque inicio un tomcat si no lo hemos instalado?
  • Esto por que el programa lo trae internamente
  • Y esto como esta configurado?
  • Abrimos el archivo pom.xml y podemos ver que tenemos una dependencia «spring-boot-starter-web»

  • Ahora hacemos CTL izquierdo, nos posicionamos sobre la dependencia y de esta forma la abrimos y podemos ver que esta dependencia tiene otra dependencia que es un tomcat

Modificar puerto de tomcat

  • Si desea modificar el puerto del tomcat
  • Vaya al proyecto->src/main/resources->application.propierties
  • Y agregue
server.port=9898
  • Reiniciamos el aplicativo
  • Volvemos al navegador pero en puerto 9898

Dev-tools

  • Si no desea estar recargando la aplicación puede agregar la dependencia spring-boot-devtools en el pom.xml
  • código
<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
  • Detenemos el proyecto
  • Lo reniciamos
  • Y ahora podemos hacer cambios y podemos ver que se realiza la compilación automáticamente

Spring Initializr

  • Existe la posibilidad de inicializar un proyecto desde la web
  • Para esto ingresamos a la página https://start.spring.io/
  • Aquí podemos seleccionar la configuración y dependencias

  • Esto nos genera un archivo .zip
  • Descomprimimos el archivo
  • Vamos a eclipse y le damos importar
  • Nos abre un asistente donde seleccionamos Maven->Existent Proyect
  • Luego ubicamos el archivo que descompimimos y lo importamos
  • Y el proyecto se importa
  • El proyecto estaría corriendo en la ruta http://localhost:8080

Aplicaciones de tipo consola

  • Le damos iniciar Spring Proyect
  • Digitamos los parametros
  • Como no va ser un proyecto web, en la siguiente ventana no seleccionamos nada y le damos finalizar
  • Se crea el proyecto
  • Ahora la documentación de Spring indique que si desea crear una aplicación de consola, la clase que contiene el metodo main debe implementar «CommandLineRunner»
  • Por tanto abrimos el archivo DemoConsolaApplication.java
  • Y le modificamos la clase para que quede así
public class DemoConsolaApplication {
X
public class DemoConsolaApplication implements CommandLineRunner {
  • Nos marca un error ya que hay que importar la clase
  • Le damos clic derecho sobre el error y le decimos que importe la clase y nos importa la clase
  • Luego debemos sobre escribir el metodo run
  • para esto hacemos clic derecho->source->Override/Implement Methods
  • Y le decimos que sobre escriba el metodo
  • Se sobre escribe
  • Y ya podemos agregar una impresión en consola
System.out.println("Hola mundo");
  • Corremos la aplicación demoConsola->Restart
  • Resultado
  • Para mejotrarlo podemos utilizar la clase logger
  • para esto agregamos una variable de tipo logger
private static Logger LOG = LoggerFactory.getLogger(DemoConsolaApplication.class);
  • Agregamos las clases necesarias, sobre Logger import org.slf4j.logger
  • Se agrega
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
  • Ahora podemos remplazar el Sytem.out por
//System.out.println("Hola mundo");
LOG.info("Hola mundo");
  • Reiniciamos la aplicación
  • Y podemos juagar con los diferentes tipos
LOG.info("Hola mundo");
LOG.warn("Esto es una advertencia");

Inyección de dependencias

  • Vamos a utilizar la aplicación de consola
  • Sobre src/main/java->new package
  • Esto para simular que nos vamos a conectar un paquete que maneja una BD
  • Entonces sobre el paquete clic derecho->New->Interface

  • Le asignamos un nombre
  • Y creamos un metodo que simula un registro
package com.tavo.repository;

public interface IPersona {

}


X

package com.tavo.repository;

public interface IPersona {
	
	void registrar (String nombre);

}
  • Ahora en el mismo paquete creamos una nueva clase New->Class
  • Codigo
package com.tavo.repository;

public class PersonaRepoImpl {

}
  • Le decimos que implemente IPersona
package com.tavo.repository;

public class PersonaRepoImpl implements IPersona{

	@Override
	public void registrar(String nombre) {
		// TODO Auto-generated method stub
		
	}

}
  • Agregamos LOG para utilizar mensajes
  • Y creamos un mensaje de consla que dice que se «registro a…»
package com.tavo.repository;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.tavo.DemoConsolaApplication;

public class PersonaRepoImpl implements IPersona{

	private static Logger LOG = LoggerFactory.getLogger(DemoConsolaApplication.class);
	
	@Override
	public void registrar(String nombre) {
		LOG.info("Se registro a:" + nombre);
		
	}

}

  • Creamos otro paquete «service» que normalmente se refiere a lógica de negocio
  • Ahora creamos una clase nueva
  • Y para estandarizar renombramos IPersona -> IPersonaRepo