¿Puedo usar Spring Boot para hacer una aplicación web completamente funcional como Spring MVC normal o incluso Python Frasco?

Puede pensar en Spring Boot como un envoltorio alrededor de Spring MVC y Spring frameworks.

Facilita la creación y el monitoreo de sus aplicaciones basadas en Spring (y Spring MVC).

¿Por qué necesitamos Spring Boot?

Las aplicaciones basadas en Spring tienen mucha configuración.

Cuando usamos Spring MVC, necesitamos configurar el escaneo de componentes, el servlet del despachador, un resolutor de vista, frascos web (para entregar contenido estático) entre otras cosas.

<frijol
class = “org.springframework.web.servlet.view.InternalResourceViewResolver”>

/ WEB-INF / views /

.jsp

El fragmento de código siguiente muestra la configuración típica de un servlet despachador en una aplicación web.

dispatcher

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
/WEB-INF/todo-servlet.xml

1

dispatcher
/

Cuando usamos Hibernate / JPA, tendríamos que configurar una fuente de datos, una fábrica de gestores de entidades, un gestor de transacciones entre muchas otras cosas.

<bean id = "dataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method = “close”>

<frijol
class = “org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean”
id = “entityManagerFactory”>

Problema 1: Configuración automática de Spring Boot: ¿Podemos pensar diferente?

Spring Boot trae un nuevo proceso de pensamiento en torno a esto.

¿Podemos aportar más inteligencia a esto? Cuando se agrega un tarro de mvc de resorte a una aplicación, ¿podemos configurar automáticamente algunos beans automáticamente?

  • ¿Qué tal la configuración automática de un origen de datos si Hibernate jar está en el classpath?
  • ¿Qué tal la configuración automática de un Servlet Dispatcher si Spring MVC jar está en el classpath?

Habría disposiciones para anular la configuración automática predeterminada.

Spring Boot analiza a) Frameworks disponibles en CLASSPATH b) Configuración existente para la aplicación. En base a esto, Spring Boot proporciona la configuración básica necesaria para configurar la aplicación con estos marcos. Esto se llama Auto Configuration .

Problema n. ° 2: Proyectos de arranque de arranque de Spring: Construido alrededor de patrones bien conocidos

Digamos que queremos desarrollar una aplicación web.

En primer lugar, deberíamos identificar los marcos que queremos usar, qué versiones de marcos usar y cómo conectarlos.

Todas las aplicaciones web tienen necesidades similares. A continuación se enumeran algunas de las dependencias que utilizamos en nuestro Curso Spring MVC. Estos incluyen Spring MVC, Jackson Databind (para el enlace de datos), Hibernate-Validator (para la validación del lado del servidor usando la API de Validación de Java) y Log4j (para el registro). Al crear este curso, tuvimos que elegir las versiones compatibles de todos estos marcos.

org.springframework
spring-webmvc
4.2.2.RELEASE

com.fasterxml.jackson.core
jackson-databind
2.5.3

org.hibernate
hibernate-validator
5.0.2.Final

log4j
log4j
1.2.17

Esto es lo que dice la documentación de Spring Boot sobre los entrantes.

Los principiantes son un conjunto de descriptores de dependencia convenientes que puede incluir en su aplicación. Obtiene una ventanilla única para toda la tecnología Spring y relacionada que necesita, sin tener que buscar código de muestra y copiar y pegar cargas de descriptores de dependencia. Por ejemplo, si desea comenzar a usar Spring y JPA para el acceso a la base de datos, simplemente incluya la dependencia spring-boot-starter-data-jpa en su proyecto, y estará listo.

Consideremos un ejemplo de inicio: Spring Boot Starter Web.

Si desea desarrollar una aplicación web o una aplicación para exponer servicios relajantes, Spring Boot Start Web es el iniciador para elegir. Vamos a crear un proyecto rápido con Spring Boot Starter Web usando Spring Initializr.

Dependencia de Spring Boot Starter Web

org.springframework.boot
spring-boot-starter-web

La siguiente captura de pantalla muestra las diferentes dependencias que se agregan a nuestra aplicación

Las dependencias se pueden clasificar en:

  • Primavera – núcleo, frijoles, contexto, aop
  • Web MVC – (Spring MVC)
  • Jackson – para JSON Binding
  • Validación – Validador de Hibernación, API de Validación
  • Contenedor de Servlet Embebido – Tomcat
  • Registro – logback, slf4j

Cualquier aplicación web típica usaría todas estas dependencias. Spring Boot Starter Web viene preempacado con estos. Como desarrollador, no necesitaría preocuparme ni por estas dependencias ni por sus versiones compatibles.

Opciones de proyecto Spring Boot Starter

Como vemos en Spring Boot Starter Web, los proyectos iniciales nos ayudan a comenzar rápidamente a desarrollar tipos específicos de aplicaciones.

  • spring-boot-starter-web-services – Servicios web SOAP
  • spring-boot-starter-web – Aplicaciones web y RESTful
  • spring-boot-starter-test – Pruebas unitarias y pruebas de integración
  • spring-boot-starter-jdbc – JDBC tradicional
  • spring-boot-starter-hateoas – Agregue funciones HATEOAS a sus servicios
  • spring-boot-starter-security – Autenticación y autorización con Spring Security
  • spring-boot-starter-data-jpa – Spring Data JPA con Hibernate
  • spring-boot-starter-cache: habilitación del soporte de almacenamiento en caché de Spring Framework
  • spring-boot-starter-data-rest – Exponer servicios REST simples usando Spring Data REST

Otros objetivos de Spring Boot

También hay algunos entrantes para cosas técnicas

  • Spring-boot-starter-actuator: para usar funciones avanzadas como monitoreo y seguimiento de su aplicación desde el primer momento
  • spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat: para elegir su elección específica de contenedor de servlet incorporado
  • spring-boot-starter-logging: para iniciar sesión con logback
  • spring-boot-starter-log4j2 – Registro utilizando Log4j2

Spring Boot tiene como objetivo habilitar aplicaciones listas para producción en poco tiempo.

  • Actuador: permite el monitoreo avanzado y el rastreo de aplicaciones.
  • Integraciones de servidores integrados: dado que el servidor está integrado en la aplicación, necesitaría tener un servidor de aplicaciones separado instalado en el servidor.
  • Manejo predeterminado de errores

Para más ver estos videos

Tutorial Spring Boot para principiantes – YouTube

Sí. Puede usar Spring boot para crear aplicaciones web completamente funcionales. Spring Boot se puede considerar como una envoltura alrededor de los componentes Spring existentes. Este contenedor hace que sea increíblemente fácil comenzar el proyecto. También hace que agregar dependencias requeridas sea pan comido porque el marco se encarga de agregar la mayoría de ellas. También trae consigo una CLI que, de nuevo, es otra forma de iniciar un proyecto con facilidad.
Aparte de esto, viene con un servidor Tomcat incorporado (se puede reemplazar con Jetty si es necesario).
Dicho todo esto, la arquitectura subyacente de MVC es la misma, lo que significa que aún obtienes todas las ventajas de Spring MVC, como perfiles, etc. El arranque simplemente lo hace más fácil.
También puede optar por hacer que su aplicación sea un servicio web REST con extrema facilidad.
Con todo, es un muy buen marco para construir una aplicación web y / o servicio web Rest.