- 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

