- 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