Spring es el Framework icónico de Java para BackEnd, con su inyección de dependencia nos libera de controlar el ciclo de vida de las instancias permitiendo mantener la optimización del uso de recursos. Sin embargo no está limitado para construir API, también se puede hacer orientado a presentación aunque con unos ajustes adicionales.
Go, el lenguaje de Google tiene frameworks que agilizan la creación de aplicaciones web, uno de ellos es Hugo para sitios estáticos y otro Revel para permitir hacer sitios dinámicos. En este sentido tenía la curiosidad si existía algo similar para Java. No lo encontré pero, esto se le acerca bastante. 😃
En la página start.spring.io tienen la herramienta que le ayudará a descargar un template con las librerías que escogieron aunque mi opción favorita es Spring Boot CLI.
En ArchLinux la pueden instalar con:
yaourt -S spring-boot-cli
Entonces para crear un proyecto (de forma más rápida que usando NetBeans o Spring Tool Suite) es:
springinit--dependencies=web,mustache--group=com.osmandi--artifact=platziplatzi
El paso siguiente es entrar en la carpeta platzi. Desde aquí haremos todo el proyecto.
cd platzi
Lo primero que haremos es el index.html. Yo usaré Atom.
atom src/main/resources/templates/index.html
<html><head>
<metacharset="utf-8">
<title>Platzititle>
head>
<body><h1>Bienvenido, esto es Spring Boot CLIh1>
br>
<h2>¿Qué tal el curso?h2>
body>
html>
El paso siguiente es decirle a Spring Boot que tenemos un index.html que queremos que muestre.
atom src/main/java/com/osmandi/platzi/DemoApplication.java
package com.osmandi.platzi;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@SpringBootApplication
publicclassDemoApplication {
publicstaticvoid main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@RequestMapping("/")
String index(){
return"index";
}
}
Solo queda compilar en nuestro local.
mvn spring-boot:run
Si entramos en nuestro navegador, localhost:8080 accederemos a nuestra aplicación así sin más. 😄
Subí el codigo a GitHub lo tienes aquí github.com/osmandi/spring-boot-cli-platzi. Puedes hacerle un fork y modificarlo a tu gusto.
Pero la programación es más divertida cuando se comparte, así que quiero ir un poco más allá 😏. ¿Qué tal si unimos a Docker y a Now.sh para subirlo a internet? 😎
¡Boom! platzi-spring-cli.now.sh
En resumen, para esa página tan sencilla utilicé:
¿Qué te pareció Spring CLI?
Nota Los químicos jamás sostendríamos un matraz erlenmeyer en medio de una reacción con desprendimiento de gas como lo tiene Duke y menos con la bata desabotonada. 😄