Skip to main content

Mi primer proyecto Spring

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] ------------------------------------------------------------------------

https://github.com/sectorcode/JAVA.git