¿Qué es Spring Boot?
Proyecto basado en Spring. No es lo mismo que Spring. Es un proyecto que forma parte del core de Spring, al igual que Spring Cloud, etc.
El objetivo principal es que sólo te centres en correr la aplicación, sin preocuparte por temas de configuración, etc.
Tiene la gran ventaja de poder integrar librerías de terceros de manera muy sencilla.
No tendremos que preocuparnos de desplegar nuestra aplicación en un servidor web local cuando queramos hacer pruebas, Spring Boot también contempla esto y lleva incorporado un servidor web dónde se desplegará nuestra aplicación automáticamente.
Características principales de Spring
Independiente: no tenemos que preocuparnos de las dependencias del core de Spring ni de la compilación de estas.
Incrustado Tomcat, Jetty o Undertow: Spring Boot trae consigo un servidor web como los tres mencionados donde podemos correr nuestra aplicación sin preocuparnos de generar un artefacto WAR o JAR y desplegarlo nosotros mismos.
Proporción de dependencias: no debemos preocuparnos por las configuraciones de dependencias de terceros o del core de Spring, Spring Boot se encargará de inyectar todo lo necesario.
Sin generación de XML: No debemos preocuparnos de configuración XML para que nuestra aplicación funcione.
Métricas de salud del aplicativo: podemos validar el estado de un servicio desplegado, sus dependencias, estado de memoria, magnitud de configuración, etc.
¿Qué es una dependencia?
Objetos definidos como una funcionalidad, sin la cual, los otros objetos no podrían trabajar, ya que dependen de ella. Nos permiten modularizar nuestra aplicación, lo cual nos beneficia en las pruebas unitarias.
Inversión de control
Le pasamos el control del flujo del programa al framework o acción de usuario.
¿Qué es un bean?
Un bean básicamente son módulos desarrollados en Spring estos se encargan de brindarnos toda la lógica que necesitamos para nuestra aplicación. es una única instancia que se crea al inicio de la ejecución del programa y puede ser usada en otras clases llamándola con @Autowired (aquí le decimos “dependencia”), también se puede llamar en el constructor de la clase y el mismo framework hace la “magia” de ir por ella sin necesidad de nosotros pararle la instancia en el constructor cuando usemos la clase.
¿Qué es inyección de dependencias?
Patrón que utiliza inversión de control para utilizar las dependencias inicializadas con el contenedor Spring.
Autoconfiguration y runtime
Spring Boot configura automáticamente tus aplicaciones basadas en dependencias JAR que agregaste mediante el pom.xml, pero si nosotros realizamos una configuración manual esta es priorizada por Spring Boot.
Anotaciones para indicar dependencias en Spring boot
Una Anotación es una forma de añadir metadatos al código fuente Java que están disponibles para la aplicación en tiempo de ejecución o de compilación. Es una alternativa mas sencilla al uso de XML.