Guía paso a paso de cómo crear un proyecto Spring desde una aplicación de consola a una aplicación web. En este tutorial utilizamos Java y Spring con los deferentes Runtimes que lo componen para construir una aplicación desde cero usando maven y Spring initializer.
Cuando construimos un proyecto spring con maven la estructura resultante siempre es la misma.
mvn archetype:create -DgroupId=com.pe.sectorcode -DartifactId=spring-ejemplo-001
|src
|-+main
|---+java
|---+resources
|-+test
|---+java
pom.xml
<groupId>com.pe.sectorcode</groupId>
<artifactId>spring-ejemplo-001</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.7</version>
</dependency>
</dependencies>
package com.pe.sectorcode;
import com.pe.sectorcode.beans.HolaMundo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public HolaMundo holaMundoBean() {
return new HolaMundo();
}
}
package com.pe.sectorcode;
import com.pe.sectorcode.beans.HolaMundo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Application
{
public static void main(String[] args) {
ApplicationContext appContext = new AnnotationConfigApplicationContext(AppConfig.class);
HolaMundo hm = (HolaMundo)appContext.getBean("holaMundoBean");
System.out.println(hm.getSaludo());
((ConfigurableApplicationContext)appContext).close();
}
}
package com.pe.sectorcode.beans;
import org.springframework.beans.factory.annotation.Value;
public class HolaMundo
{
@Value("Hola Mundo !!!")
private String saludo;
public String getSaludo()
{
return saludo;
}
public void setSaludo(String saludo)
{
this.saludo = saludo;
}
}
Procedemos a la compilación y ejecución de nuestra aplicación.
mvn compile exec:java -Dexec.mainClass="com.pe.sectorcode.Application"
[INFO] Scanning for projects… [INFO] [INFO] ----------------< com.pe.sectorcode:spring-ejemplo-001 >---------------- [INFO] Building spring-ejemplo-001 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ spring-ejemplo-001 --- [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ spring-ejemplo-001 --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ spring-ejemplo-001 --- Hola Mundo !!! [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.590 s [INFO] Finished at: 2021-07-10T23:52:34-05:00 [INFO] ------------------------------------------------------------------------