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ícateCrear 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
ysrc/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.
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
Introducción Y Entorno
Spring Boot Starters
Introducción Y Entorno
Inyección De Dependencias
Introducción Y Entorno
Crear Proyecto Con Spring Initializr
Introducción Y Entorno
Crear Proyecto Desde Visual Studio Code
Introducción Y Entorno
Controladores Spring Mvc
Spring Mvc Con Thymeleaf
Vista En Spring Mvc Con Thymeleaf
Spring Mvc Con Thymeleaf
Controladores Spring Rest
Spring Mvc Con Thymeleaf
Open Api Y Cómo Agregarlo En Spring Boot
Spring Mvc Con Thymeleaf
Servicios En Spring
Spring Mvc Con Thymeleaf
Clientes Resttemplate Y Restclient
Spring Mvc Con Thymeleaf
Rxjava En Spring Web
Spring Mvc Con Thymeleaf
Métodos Post En Controladores Mvc
Spring Mvc Con Thymeleaf
Métodos Get En Controladores Mvc
Spring Mvc Con Thymeleaf
Formularios En Spring Mvc
Spring Mvc Con Thymeleaf
Crear Proyecto Con Intellij Idea
Spring Mvc Con Thymeleaf
Introducción A Los Modelos Mvc
Spring Mvc Con Thymeleaf
Layouts Y Fragmentos En Thymeleaf
Spring Mvc Con Thymeleaf
Estilización Con Bootstrap Css
Spring Mvc Con Thymeleaf
Gestión De Errores Controlleradvice
Spring Mvc Con Thymeleaf
Estilización Con Tailwind Css
Spring Mvc Con Thymeleaf
Introducción A Controladores Rest
Spring Rest
Métodos Get En Controladores Rest
Spring Rest
Métodos Post En Controladores Rest
Spring Rest
Métodos Delete En Controladores Rest
Spring Rest
Métodos Put Y Patch En Controladores Rest
Spring Rest
Gestión De Errores Restcontrolleradvice
Spring Rest
Creación De Entidades Jpa
Spring Data Jpa
Asociaciones De Entidades Jpa
Spring Data Jpa
Repositorios Spring Data
Spring Data Jpa
Métodos Find En Repositorios
Spring Data Jpa
Inserción De Datos
Spring Data Jpa
Actualizar Datos De Base De Datos
Spring Data Jpa
Borrar Datos De Base De Datos
Spring Data Jpa
Consultas Jpql Con @Query En Spring Data Jpa
Spring Data Jpa
Api Query By Example (Qbe)
Spring Data Jpa
Api Specification
Spring Data Jpa
Repositorios Reactivos
Spring Data Jpa
Configuración Base De Datos Postgresql
Spring Data Jpa
Configuración Base De Datos Mysql
Spring Data Jpa
Introducción A Jpa Y Spring Data Jpa
Spring Data Jpa
Configuración Base De Datos H2
Spring Data Jpa
Testing Unitario De Componentes Y Servicios
Testing Con Spring Test
Testing De Repositorios Spring Data Jpa
Testing Con Spring Test
Testing Controladores Spring Mvc Con Thymeleaf
Testing Con Spring Test
Testing Controladores Rest Con Json
Testing Con Spring Test
Testing De Aplicaciones Reactivas Webflux
Testing Con Spring Test
Testing De Seguridad Spring Security
Testing Con Spring Test
Testing Con Apache Kafka
Testing Con Spring Test
Introducción Al Testing
Testing Con Spring Test
Introducción A Spring Security
Seguridad Con Spring Security
Seguridad Basada En Formulario
Seguridad Con Spring Security
Registro De Usuarios En Api Rest
Seguridad Con Spring Security
Login De Usuarios En Api Rest
Seguridad Con Spring Security
Validación Jwt En Api Rest
Seguridad Con Spring Security
Autenticación Jwt Completa En Api Rest
Seguridad Con Spring Security
Seguridad Jwt En Api Rest Reactiva Spring Webflux
Seguridad Con Spring Security
Autenticación Y Autorización Con Anotaciones
Seguridad Con Spring Security
Fundamentos De Autenticación Oauth
Seguridad Con Spring Security
Autenticación Oauth Con Github
Seguridad Con Spring Security
Testing Con Spring Security Test
Seguridad Con Spring Security
Autenticación Oauth En Api Rest
Seguridad Con Spring Security
Introducción A Spring Webflux
Reactividad Webflux
Spring Data R2dbc
Reactividad Webflux
Controlador Reactivo Basado En Anotaciones
Reactividad Webflux
Controlador Reactivo Basado En Funciones
Reactividad Webflux
Operadores Reactivos Básicos
Reactividad Webflux
Operadores Reactivos Avanzados
Reactividad Webflux
Cliente Reactivo Webclient
Reactividad Webflux
Introducción E Instalación De Apache Kafka
Mensajería Asíncrona
Crear Proyecto Con Apache Kafka
Mensajería Asíncrona
Creación De Producers
Mensajería Asíncrona
Creación De Consumers
Mensajería Asíncrona
Kafka Streams En Spring Boot
Mensajería Asíncrona
Integración Con Angular
Integración Frontend
Integración Con React
Integración Frontend
Integración Con Vue
Integración Frontend
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.
Crear entidades JPA
Controladores Spring MVC
Asociaciones de entidades JPA
Creación de entidades
Reto servicio PedidoService
Reto controlador REST
Consultas JPQL
Reto test controlador REST
Anotaciones JPA
Relación ManyToOne con Tarea y Proyecto
CRUD Customers Spring MVC + Spring Data JPA
Backend API REST con Spring Boot
Filtrar categorías por nombre
Reto controlador MVC Categoría
Entidad y repositorio
Métodos derivados y consultas JPQL en repositorios
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.