Spring Boot

SpringBoot

Tutorial SpringBoot: Crear proyecto con IntelliJ IDEA

Aprende a crear y configurar un proyecto Spring Boot en IntelliJ IDEA con Spring Initializr y dependencias esenciales para desarrollo web.

Aprende SpringBoot y certifícate

Crear proyecto con IntelliJ IDEA

IntelliJ IDEA es uno de los entornos de desarrollo integrados (IDE) más utilizados para proyectos Java y Spring Boot. Su integración nativa con Spring Boot facilita enormemente la creación y configuración de nuevos proyectos, automatizando muchas tareas que de otro modo tendríamos que realizar manualmente.

El IDE incluye Spring Initializr integrado, que nos permite generar la estructura básica del proyecto con todas las dependencias necesarias sin salir del entorno de desarrollo. Esto resulta especialmente útil cuando trabajamos en proyectos profesionales donde la configuración inicial debe ser precisa y eficiente.

Acceso a Spring Initializr desde IntelliJ

Para crear un nuevo proyecto Spring Boot, iniciamos IntelliJ IDEA y seleccionamos la opción "New Project" desde la pantalla de bienvenida o desde el menú File. En la ventana que aparece, encontraremos diferentes generadores de proyectos en el panel izquierdo.

Seleccionamos "Spring Initializr" de la lista de generadores disponibles. Esta opción nos conecta directamente con el servicio oficial de Spring para generar la estructura del proyecto. IntelliJ utiliza por defecto la URL https://start.spring.io, que es el servicio oficial de Spring Boot.

Una vez seleccionado Spring Initializr, el IDE nos presenta un formulario de configuración donde definiremos las características básicas de nuestro proyecto.

Configuración del proyecto

La configuración del proyecto se divide en varias secciones que debemos completar cuidadosamente:

Información básica del proyecto:

En la sección "Project Metadata" definimos los datos fundamentales:

  • Group: Identificador único de la organización, normalmente en formato de dominio inverso como com.empresa.proyecto
  • Artifact: Nombre del proyecto, que será también el nombre del archivo JAR generado
  • Name: Nombre descriptivo del proyecto (se autocompleta basándose en el Artifact)
  • Package name: Paquete base donde se ubicarán nuestras clases Java
Group: com.ejemplo
Artifact: mi-aplicacion-web
Name: Mi Aplicación Web
Package name: com.ejemplo.mi-aplicacion-web

Configuración técnica:

  • Project SDK: Seleccionamos la versión de Java instalada en nuestro sistema (recomendado Java 17 o superior)
  • Language: Java (aunque también están disponibles Kotlin y Groovy)
  • Type: Maven Project (la opción más común para proyectos Spring Boot)
  • Packaging: JAR para aplicaciones web estándar
  • Java Version: Debe coincidir con el SDK seleccionado

Selección de dependencias

La selección de dependencias es uno de los aspectos más importantes al crear el proyecto.

Spring Boot organiza las dependencias en categorías para facilitar su localización:

Dependencias esenciales para aplicaciones web:

  • Spring Web: Incluye Spring MVC, Tomcat embebido y todo lo necesario para crear aplicaciones web

  • Spring Boot DevTools: Herramientas de desarrollo que incluyen reinicio automático y recarga en caliente

  • Spring Data JPA: Para trabajar con bases de datos relacionales de forma simplificada

Dependencias de base de datos:

Para proyectos que requieren persistencia de datos, podemos añadir:

  • H2 Database: Base de datos en memoria, ideal para desarrollo y pruebas

  • MySQL Driver: Para conectar con bases de datos MySQL

  • PostgreSQL Driver: Para proyectos que utilicen PostgreSQL

El buscador de dependencias nos permite localizar rápidamente las librerías que necesitamos escribiendo palabras clave. Por ejemplo, escribiendo "web" aparecerán todas las dependencias relacionadas con desarrollo web.

Generación y estructura del proyecto

Una vez completada la configuración, hacemos clic en "Create" para generar el proyecto. IntelliJ IDEA descarga la estructura desde Spring Initializr y la importa automáticamente en el IDE.

El proyecto generado incluye una estructura estándar de Maven:

mi-aplicacion-web/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/ejemplo/mi_aplicacion_web/
│   │   │       └── MiAplicacionWebApplication.java
│   │   └── resources/
│   │       ├── static/
│   │       ├── templates/
│   │       └── application.properties
│   └── test/
│       └── java/
├── target/
└── pom.xml

La clase principal del proyecto se genera automáticamente con la anotación @SpringBootApplication:

package com.ejemplo.mi_aplicacion_web;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootApplication;

@SpringBootApplication
public class MiAplicacionWebApplication {
    public static void main(String[] args) {
        SpringApplication.run(MiAplicacionWebApplication.class, args);
    }
}

Configuración automática del IDE

IntelliJ IDEA realiza automáticamente varias configuraciones importantes:

  • Importación de dependencias Maven: El IDE descarga todas las librerías especificadas en el pom.xml
  • Configuración del SDK: Establece la versión de Java correcta para el proyecto
  • Estructura de carpetas: Marca las carpetas src/main/java y src/test/java como directorios de código fuente
  • Configuración de ejecución: Crea automáticamente una configuración para ejecutar la aplicación Spring Boot

El archivo pom.xml generado incluye todas las dependencias seleccionadas y la configuración necesaria para Spring Boot 3.5:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.0</version>
        <relativePath/>
    </parent>
    
    <groupId>com.ejemplo</groupId>
    <artifactId>mi-aplicacion-web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Mi Aplicación Web</name>
    
    <properties>
        <java.version>17</java.version>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

Una vez completado este proceso, tendremos un proyecto Spring Boot completamente funcional listo para comenzar el desarrollo. El IDE habrá configurado automáticamente todos los aspectos técnicos, permitiéndonos concentrarnos en escribir el código de nuestra aplicación.

Aprende SpringBoot online

Otras lecciones de SpringBoot

Accede a todas las lecciones de SpringBoot y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Spring Boot

Spring Boot

Introducción Y Entorno

Spring Boot Starters

Spring Boot

Introducción Y Entorno

Inyección De Dependencias

Spring Boot

Introducción Y Entorno

Crear Proyecto Con Spring Initializr

Spring Boot

Introducción Y Entorno

Crear Proyecto Desde Visual Studio Code

Spring Boot

Introducción Y Entorno

Controladores Spring Mvc

Spring Boot

Spring Mvc Con Thymeleaf

Vista En Spring Mvc Con Thymeleaf

Spring Boot

Spring Mvc Con Thymeleaf

Controladores Spring Rest

Spring Boot

Spring Mvc Con Thymeleaf

Open Api Y Cómo Agregarlo En Spring Boot

Spring Boot

Spring Mvc Con Thymeleaf

Servicios En Spring

Spring Boot

Spring Mvc Con Thymeleaf

Clientes Resttemplate Y Restclient

Spring Boot

Spring Mvc Con Thymeleaf

Rxjava En Spring Web

Spring Boot

Spring Mvc Con Thymeleaf

Métodos Post En Controladores Mvc

Spring Boot

Spring Mvc Con Thymeleaf

Métodos Get En Controladores Mvc

Spring Boot

Spring Mvc Con Thymeleaf

Formularios En Spring Mvc

Spring Boot

Spring Mvc Con Thymeleaf

Crear Proyecto Con Intellij Idea

Spring Boot

Spring Mvc Con Thymeleaf

Introducción A Los Modelos Mvc

Spring Boot

Spring Mvc Con Thymeleaf

Layouts Y Fragmentos En Thymeleaf

Spring Boot

Spring Mvc Con Thymeleaf

Estilización Con Bootstrap Css

Spring Boot

Spring Mvc Con Thymeleaf

Gestión De Errores Controlleradvice

Spring Boot

Spring Mvc Con Thymeleaf

Estilización Con Tailwind Css

Spring Boot

Spring Mvc Con Thymeleaf

Introducción A Controladores Rest

Spring Boot

Spring Rest

Métodos Get En Controladores Rest

Spring Boot

Spring Rest

Métodos Post En Controladores Rest

Spring Boot

Spring Rest

Métodos Delete En Controladores Rest

Spring Boot

Spring Rest

Métodos Put Y Patch En Controladores Rest

Spring Boot

Spring Rest

Gestión De Errores Restcontrolleradvice

Spring Boot

Spring Rest

Creación De Entidades Jpa

Spring Boot

Spring Data Jpa

Asociaciones De Entidades Jpa

Spring Boot

Spring Data Jpa

Repositorios Spring Data

Spring Boot

Spring Data Jpa

Métodos Find En Repositorios

Spring Boot

Spring Data Jpa

Inserción De Datos

Spring Boot

Spring Data Jpa

Actualizar Datos De Base De Datos

Spring Boot

Spring Data Jpa

Borrar Datos De Base De Datos

Spring Boot

Spring Data Jpa

Consultas Jpql Con @Query En Spring Data Jpa

Spring Boot

Spring Data Jpa

Api Query By Example (Qbe)

Spring Boot

Spring Data Jpa

Api Specification

Spring Boot

Spring Data Jpa

Repositorios Reactivos

Spring Boot

Spring Data Jpa

Configuración Base De Datos Postgresql

Spring Boot

Spring Data Jpa

Configuración Base De Datos Mysql

Spring Boot

Spring Data Jpa

Introducción A Jpa Y Spring Data Jpa

Spring Boot

Spring Data Jpa

Configuración Base De Datos H2

Spring Boot

Spring Data Jpa

Testing Unitario De Componentes Y Servicios

Spring Boot

Testing Con Spring Test

Testing De Repositorios Spring Data Jpa

Spring Boot

Testing Con Spring Test

Testing Controladores Spring Mvc Con Thymeleaf

Spring Boot

Testing Con Spring Test

Testing Controladores Rest Con Json

Spring Boot

Testing Con Spring Test

Testing De Aplicaciones Reactivas Webflux

Spring Boot

Testing Con Spring Test

Testing De Seguridad Spring Security

Spring Boot

Testing Con Spring Test

Testing Con Apache Kafka

Spring Boot

Testing Con Spring Test

Introducción Al Testing

Spring Boot

Testing Con Spring Test

Introducción A Spring Security

Spring Boot

Seguridad Con Spring Security

Seguridad Basada En Formulario

Spring Boot

Seguridad Con Spring Security

Registro De Usuarios En Api Rest

Spring Boot

Seguridad Con Spring Security

Login De Usuarios En Api Rest

Spring Boot

Seguridad Con Spring Security

Validación Jwt En Api Rest

Spring Boot

Seguridad Con Spring Security

Autenticación Jwt Completa En Api Rest

Spring Boot

Seguridad Con Spring Security

Seguridad Jwt En Api Rest Reactiva Spring Webflux

Spring Boot

Seguridad Con Spring Security

Autenticación Y Autorización Con Anotaciones

Spring Boot

Seguridad Con Spring Security

Fundamentos De Autenticación Oauth

Spring Boot

Seguridad Con Spring Security

Autenticación Oauth Con Github

Spring Boot

Seguridad Con Spring Security

Testing Con Spring Security Test

Spring Boot

Seguridad Con Spring Security

Autenticación Oauth En Api Rest

Spring Boot

Seguridad Con Spring Security

Introducción A Spring Webflux

Spring Boot

Reactividad Webflux

Spring Data R2dbc

Spring Boot

Reactividad Webflux

Controlador Reactivo Basado En Anotaciones

Spring Boot

Reactividad Webflux

Controlador Reactivo Basado En Funciones

Spring Boot

Reactividad Webflux

Operadores Reactivos Básicos

Spring Boot

Reactividad Webflux

Operadores Reactivos Avanzados

Spring Boot

Reactividad Webflux

Cliente Reactivo Webclient

Spring Boot

Reactividad Webflux

Introducción E Instalación De Apache Kafka

Spring Boot

Mensajería Asíncrona

Crear Proyecto Con Apache Kafka

Spring Boot

Mensajería Asíncrona

Creación De Producers

Spring Boot

Mensajería Asíncrona

Creación De Consumers

Spring Boot

Mensajería Asíncrona

Kafka Streams En Spring Boot

Spring Boot

Mensajería Asíncrona

Integración Con Angular

Spring Boot

Integración Frontend

Integración Con React

Spring Boot

Integración Frontend

Integración Con Vue

Spring Boot

Integración Frontend

Accede GRATIS a SpringBoot y certifícate

Ejercicios de programación de SpringBoot

Evalúa tus conocimientos de esta lección Crear proyecto con IntelliJ IDEA con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

En esta lección

Objetivos de aprendizaje de esta lección

  • Comprender cómo iniciar un proyecto Spring Boot desde IntelliJ IDEA usando Spring Initializr.
  • Configurar correctamente los metadatos y parámetros técnicos del proyecto.
  • Seleccionar y añadir dependencias esenciales para aplicaciones web y bases de datos.
  • Entender la estructura generada del proyecto y la clase principal con @SpringBootApplication.
  • Conocer las configuraciones automáticas que IntelliJ IDEA realiza para facilitar el desarrollo.