Trace Id is missing
Saltar al contenido principal
Personas trabajando en la oficina en la pantalla de su portátil

¿Qué es Java Spring Boot?

Introducción a Spring Boot: la conocida herramienta basada en Java para desarrollar aplicaciones web y microservicios.

Una persona viendo la pantalla de un portátil y usando el teclado externo con el mouse

¿Qué es Spring Boot?

Java Spring Boot es una herramienta de código abierto que facilita el uso de marcos basados en Java para crear microservicios y aplicaciones web. Para cualquier definición de Spring Boot, la conversación tiene que comenzar con Java, uno de los lenguajes de desarrollo y plataformas informáticas más populares y ampliamente usados para el desarrollo de aplicaciones. Los desarrolladores de todo el mundo inician su recorrido en el mundo de escribir código aprendiendo Java. Flexible y fácil de usar, Java es un favorito para desarrolladores para múltiples aplicaciones, desde redes sociales, web y juegos hasta aplicaciones empresariales y de redes.

Java y el marco Spring

Aunque Java puede ser fácil de usar y más fácil de aprender que otros lenguajes, el nivel de complejidad para compilar, depurar e implementar aplicaciones de Java ha aumentado. Esto se debe al número exponencial de variables a las que se enfrentan los desarrolladores modernos al desarrollar aplicaciones web o móviles para tecnologías modernas comunes, como el streaming de música o las aplicaciones de pago en efectivo móviles. Un desarrollador que escriba una aplicación de línea de negocio básica ahora debe tratar con varias bibliotecas, complementos, registro de errores, integraciones con servicios web y varios lenguajes como C#, Java, HTML y otros. Es comprensible que haya una demanda insatisfecha de herramientas que optimice el desarrollo de aplicaciones de Java, lo que ahorra tiempo y dinero a los desarrolladores.

Presentamos los marcos de trabajo de la aplicación: los grandes cuerpos de código escrito previamente que los desarrolladores pueden usar y agregar a su propio código, según lo determinen sus necesidades. Estos marcos reducen la carga del desarrollador para casi cualquier necesidad, tanto si desarrollan aplicaciones móviles y web como si trabajan con escritorios y API. Los marcos hacen que la creación de aplicaciones sea más rápida, fácil y segura, ya que proporcionan código y herramientas reutilizables para ayudar a unir los distintos elementos de un proyecto de desarrollo de software.

Aquí es donde entra Spring: Spring es un proyecto de código abierto que proporciona un enfoque simplificado y modular para crear aplicaciones con Java. La familia de proyectos de Spring comenzó en 2003 como respuesta a las complejidades del desarrollo inicial de Java y proporciona soporte en el desarrollo de aplicaciones de Java. El nombre, Spring, por sí solo suele hacer referencia al marco de trabajo de la aplicación en sí o a todo el grupo de proyectos o módulos. Java Spring Boot es un módulo específico que se desarrolló como una extensión del marco Spring.

Por lo tanto, con esa información sobre cómo funcionan conjuntamente el marco Spring, Spring Boot y Java, esta es la definición de Spring Boot: la herramienta que optimiza y acelera el desarrollo de aplicaciones web y microservicios dentro del marco Java, Spring.

A veces, dado que el lenguaje o la plataforma es Java, se hace referencia a él como "Java Spring Boot," el "marco Java Spring," o el "marco Spring Boot." Sin embargo, dado que hay otros marcos de terceros para Java, como Play e Hibernate, es más preciso decir "Spring" y "Spring Boot."

Para obtener una explicación general de los conceptos básicos de Java, consulte el artículo ¿Qué es Java?

¿Cuál es la diferencia entre Spring y Spring Boot?

Como se mencionó anteriormente, Spring es un marco de aplicaciones basado en Java de código abierto que abarca muchos proyectos más pequeños bajo su paraguas. Otros proyectos populares de Spring incluyen Spring Data, Spring Cloud y Spring Security, por nombrar algunos. Para comprender la diferencia entre Spring Boot frente a Spring, es importante tener en cuenta que, aunque puede haber diferencias en las funcionalidades principales, todo está en la familia Spring.

Para comprender completamente las diferencias entre Spring y Spring Boot, primero debemos definir algunos términos clave.

Una persona mirando en el portátil.
Una mujer mirando en la tableta.

¿Qué son los microservicios?

Los microservicios son un enfoque para la arquitectura de desarrollo de software. El prefijo "micro" en microservicios hace referencia al código que se entrega en partes o componentes pequeños y administrables, y cada "servicio" o función principal se crea e implementa independientemente de los demás servicios. Los componentes independientes funcionan juntos y se comunican a través de documentos de API prescritas denominados contratos. La escala pequeña y el aislamiento relativo de estos microservicios tienen muchas ventajas. Por ejemplo, dado que este tipo de arquitectura se distribuye y se acopla de forma flexible, no se produce una interrupción de toda la aplicación si se produce un error en un componente. Otras ventajas son la mejora de la productividad, el mantenimiento más sencillo, una mejor alineación empresarial y una mayor tolerancia a errores.

¿Qué es la inserción de dependencias?

La inserción de dependencias (DI) es una técnica de diseño que se usa para lograr la inversión del control (IoC). En la programación orientada a objetos como Java, los objetos que dependen de otros objetos se denominan dependencias. Normalmente, el objeto receptor o dependiente se denomina cliente y el objeto del que depende el cliente se denomina servicio. Por lo tanto, la inserción de dependencias pasa el servicio al cliente o "inserta" la dependencia mediante código denominado inyector. La inserción de dependencias elimina la necesidad de que el cliente especifique qué servicio usar, el inyector realiza ese trabajo para el cliente.

Una persona mirando en el portátil y un monitor
Una mujer con auriculares VR

¿Qué es la convención sobre la configuración?

La convención sobre la configuración, a veces denominada codificación por convención, es un concepto que se usa en los marcos de trabajo de la aplicación para reducir el número de decisiones que un desarrollador tiene que tomar. Cumple el principio "Una vez y solo una" para evitar la escritura de código redundante. La codificación por convención se esfuerza por mantener la flexibilidad, a la vez que permite a un desarrollador escribir solo código para los aspectos poco convencionales de la aplicación que está creando. Cuando el comportamiento deseado de la aplicación coincide con las convenciones establecidas, la aplicación se ejecutará de forma predeterminada sin tener que escribir archivos de configuración. El desarrollador solo tendrá que escribir explícitamente archivos de configuración si el comportamiento deseado se aleja de la "convención."

Marco Spring frente a Spring Boot

Dado que Spring Boot se basa en las ventajas del marco Spring, no es realmente una "situación en la que haya que usar cualquiera o escoger" entre Spring o Spring Boot, sino una "situación en la que es posible beneficiarse de ambos". No es Spring frente a Spring Boot; Spring y Spring Boot van de la mano:
plan de soporte técnico para toda la organización
Spring Spring Boot
¿Qué es?

Marco de trabajo de aplicación web de código abierto basado en Java.

Extensión o módulo basado en el marco Spring.

¿Para qué sirve?

Proporciona un entorno flexible y completamente configurable mediante herramientas y bibliotecas de código precompilado para crear aplicaciones web personalizadas y de acoplamiento flexible.

Proporciona la capacidad de crear aplicaciones de Spring independientes que se pueden ejecutar inmediatamente sin necesidad de anotaciones, configuración XML o escritura de mucho código adicional.

¿Cuándo debe usarse?

Usa Spring cuando quieras:

  • Flexibilidad
  • Un enfoque sin sesgo*
  • Quitar dependencias del código personalizado
  • Implementar una configuración muy única
  • Desarrollar aplicaciones empresariales

Usa Spring Boot cuando quieras:

  • Facilidad de uso
  • Un enfoque con sesgo*
  • Poner en funcionamiento aplicaciones de calidad rápidamente y reducir el tiempo de desarrollo
  • Evitar escribir código reutilizable o configurar XML
  • Desarrollar API de REST
¿Cuál es su característica clave?

Inserción de dependencias

Autoconfiguración

¿Tiene servidores integrados?

No. En Spring, tendrás que configurar los servidores explícitamente.

Sí, Spring Boot incluye servidores HTTP integrados como Tomcat y Jetty.

¿Cómo se configura?

El marco Spring proporciona flexibilidad, pero su configuración se debe compilar manualmente.

Spring Boot configura Spring y otros marcos de terceros automáticamente de acuerdo con el principio predeterminado "convención sobre la configuración".

¿Necesito saber cómo trabajar con XML?

En Spring, se requiere conocimiento de la configuración XML.

Spring Boot no requiere configuración XML.

¿Hay herramientas de la CLI para aplicaciones de desarrollo y pruebas?

El marco Spring por sí solo no proporciona herramientas de la CLI para desarrollar o probar aplicaciones.

Como módulo de Spring, Spring Boot tiene una herramienta de la CLI para desarrollar y probar aplicaciones basadas en Spring.

¿Funciona desde un enfoque con sesgo o sin sesgo?

Sin sesgo*

Con sesgo*

* Enfoque de marco de trabajo con sesgo frente a sin sesgo

Aunque la palabra "con sesgo" puede parecer negativa, tanto el enfoque con sesgo de Spring Boot como el marco Spring sin sesgo tienen sus ventajas.

Enfoque con sesgo

Un enfoque con sesgo adopta la posición de que hay una forma que es mucho más fácil que todas las demás. Por diseño, el software limita a los diseñadores, lo que les anima a hacer cosas de esa manera prescrita.

Proporciona un camino bien preparado, un procedimiento recomendado que funcionará para la mayoría de las personas en la mayoría de las situaciones. La aplicación está escrita siguiendo de forma estricta estos procedimientos recomendados y convenciones generalizadas. Un enfoque con sesgo hace que la colaboración y la obtención de ayuda con un proyecto de codificación sean mucho más fáciles, otros desarrolladores que tengan experiencia con ese marco de trabajo tendrán familiaridad inmediata con la nueva aplicación y podrán empezar directamente.

Enfoque sin sesgo

Se adopta un enfoque sin sesgo si todas las soluciones requieren aproximadamente la misma cantidad de esfuerzo o complejidad. Asume la posición de que no hay una forma correcta de llegar a una solución a un problema. En su lugar, proporciona herramientas flexibles que se pueden usar para resolver el problema de muchas maneras. Los marcos de trabajo sin sesgo tienen la ventaja de proporcionar una gran flexibilidad en el desarrollo y ponen más control en manos de los desarrolladores. La principal desventaja con tanta flexibilidad es que el desarrollador tiene más decisiones que tomar y puede acabar teniendo que escribir más código porque el marco es tan abierto y no tiene sesgo.

Características y ventajas de Spring Boot

Por último, la parte interesante: las funcionalidades principales que Java Spring Boot proporciona más allá del marco Spring. Spring Boot proporciona una ruta de acceso más fácil y rápida para configurar, establecer y ejecutar aplicaciones. Elimina el trabajo pesado de configuración necesario para configurar la mayoría de las aplicaciones basadas en Spring. Los desarrolladores pueden entrar directamente y usar Spring Boot sin tener que aprender el marco de Spring subyacente.

Una persona sentada en una silla y mirando en la pantalla del escritorio

Así es como las características de Spring Boot ayudan a simplificar las tareas de programación de Java. Algunas características clave de Spring Boot son:

Ventajas de Spring Boot

Spring Boot:

Tutoriales de Java Spring Boot

Si ya tienes experiencia con la creación de aplicaciones mediante el marco Spring, probablemente te resultará sencillo aprender Spring Boot con los tutoriales, los inicios de proyecto y la documentación que se proporcionan en esta sección. Sin embargo, estas son algunas buenas noticias si estás deseando usar Spring Boot pero aún no conoces el marco. Es posible aprender Spring Boot, y empezar a trabajar con él, antes de aprender el marco de Spring, ya que aprenderás muchos de los aspectos básicos del marco a medida que avances. Aunque esto no te enseñará todo lo que hay que saber sobre el marco, te dará un buen comienzo si decides aprenderlo más adelante.

Otra ventaja del aprendizaje Spring Boot, además de hacer que el desarrollo de aplicaciones sea mucho más rápido y eficaz, es que también te permite usar otras funcionalidades de Spring, como Spring Data, Project Reactor y Spring Security.

Una persona hablando a través de un portátil con auriculares
Dicho esto, te resultará más fácil trabajar en tu primer tutorial de Spring Boot si primero aprendes cómo funcionan los conceptos básicos de inserción de dependencias e inversión de control en el marco Spring. Esta es una introducción general:

Inserción de dependencias

  • Basado en XML, es decir, <beans/> y <namespace:*/>.
  • Basado en anotaciones, es decir, @Component, @Autowired @Inject.
  • Basado en Java, es decir, @Clases de configuración, @Métodos Bean.

Inversión de control (IoC)

  • ApplicationContext: la interfaz raíz que actúa como contenedor de Spring IoC.
  • BeanFactory: la interfaz para acceder al contenedor de Spring.
  • Beans: una instancia de los objetos, los ensambla y administra ApplicationContext.

Tutoriales de Java Spring Boot para principiantes

Una vez que hayas aprendido los conceptos básicos, si deseas compilar e implementar aplicaciones de Spring Boot a escala, considera la posibilidad de consultar el servicio Azure Spring Cloud totalmente administrado de Microsoft y VMware. O bien, empieza inmediatamente con este tutorial sobre cómo proteger las aplicaciones de Spring Boot con certificados TLS/SSL.

Creación y ayuda para proteger una aplicación Java

Cree una aplicación Java con Spring Initializr mediante el inicio de Spring Boot para Microsoft Entra ID (anteriormente Azure Active Directory).

Implementación de la primera aplicación de Azure Spring Cloud

Aprende a crear, aprovisionar y supervisar una aplicación de Spring Boot sencilla compilada con Spring Initializr.

Creación de un microservicio de Spring Boot sencillo

Compila e implementa un microservicio sencillo y, a continuación, aprende a agregarle tecnologías de Spring Cloud.

Más información sobre los iniciadores de Spring Boot

Agrega características de almacenamiento, seguridad, autenticación y almacén de claves a las aplicaciones de Spring Boot.

Preguntas más frecuentes

  • Spring Boot es un marco web de Java basado en microservicios de código abierto que ofrece Spring, especialmente útil para ingenieros de software que desarrollan aplicaciones web y microservicios.

  • "Spring Boot en Java" es otra manera de decir "Java Spring Boot": los dos términos se pueden usar indistintamente. Java es el lenguaje y la plataforma, Spring es el marco de trabajo de la aplicación basado en Java y Spring Boot es una extensión del marco Spring, con algunas ventajas adicionales.

  • Spring Boot tiene la funcionalidad del marco general de Spring, pero Spring Boot no requiere que aprendas Spring. Un desarrollador puede poner una aplicación en funcionamiento con menos tiempo porque los atributos de Spring Boot se configuran automáticamente y el enfoque con sesgo elimina gran parte del código reutilizable y la configuración relacionada con el desarrollo e implementación de aplicaciones de Spring.

  • Sí, como se mencionó anteriormente, Spring Boot es especialmente útil para un enfoque de microservicios para la arquitectura de desarrollo de software. Los microservicios son una forma popular de crear equipos pequeños y autónomos que pueden trabajar de forma independiente y, por su propia naturaleza, los microservicios solo funcionan en el back-end.

  • Un tiempo de desarrollo reducido, una mayor productividad y facilidad de uso son solo algunas de las ventajas de desarrollar aplicaciones Spring Boot.

  • Hay una gran cantidad de tutoriales, inicios rápidos y documentación en el sitio web de Spring así como Principios básicos y documentación de Spring Boot de Microsoft Azure. Si deseas empezar inmediatamente a implementar aplicaciones de Spring Boot, consulta el seminario web Aceleración de aplicaciones de Spring Boot a la nube a escala.

Cuando quieras, podemos configurar tu cuenta gratuita de Azure