Conocí a un estudiante universitario hoy: ¿No puede responder estas 82 preguntas de la entrevista SpringBoot? ¿Todavía quieres entrar en la gran fábrica?

Preguntas de la entrevista Spring Boot

1. ¿Qué es Spring Boot?

Spring se ha vuelto más complejo a lo largo de los años a medida que se agregan nuevas funciones. Simplemente visite la página y veremos las diferentes características de todos los proyectos de Spring que se pueden usar en nuestra aplicación. Si tenemos que comenzar un nuevo proyecto de Spring, debemos agregar una ruta de compilación o agregar dependencias de Maven, configurar el servidor de aplicaciones, agregar la configuración de Spring. Entonces, comenzar un nuevo proyecto de primavera requiere mucho esfuerzo, ya que ahora tenemos que hacer todo desde cero.

Spring Boot es la solución a este problema. Spring Boot se ha construido sobre el marco de Spring existente. Con Spring Boot, evitamos todo el código repetitivo y la configuración que teníamos que hacer antes. Por lo tanto, Spring Boot puede ayudarnos a usar las funciones de Spring existentes de manera más robusta con un esfuerzo mínimo.

2. Por qué usar SpringBoot

Spring Boot tiene muchas ventajas, tales como:

1. Operación independiente

Spring Boot también incorpora varios contenedores de servlet, Tomcat, Jetty, etc. Ahora ya no es necesario empaquetarlo como un paquete de guerra e implementarlo en el contenedor. Spring Boot puede ejecutarse de forma independiente siempre que esté empaquetado en un paquete jar ejecutable y todos los paquetes dependientes están en un paquete jar.

2. Configuración simplificada

Spring-boot-starter-web starter depende automáticamente de otros componentes, lo que reduce la configuración de maven.

3. Configuración automática

Spring Boot puede configurar beans automáticamente de acuerdo con las clases y los paquetes jar en el classpath actual. Por ejemplo, agregar un iniciador spring-boot-starter-web puede tener funciones web sin otra configuración.

Cuarto, sin generación de código y configuración XML

No hay generación de código en el proceso de configuración de Spring Boot, y todo el trabajo de configuración se puede completar sin archivos de configuración XML.Todo esto se hace con la ayuda de anotaciones condicionales, que también es una de las funciones principales de Spring 4.x.

5. Monitoreo de aplicaciones

Spring Boot proporciona una serie de puntos finales para monitorear servicios y aplicaciones y realizar controles de salud

3. ¿Cuáles son las ventajas de Spring Boot?

Las ventajas de Spring Boot son:

  • 1. Reduzca el tiempo y el esfuerzo de desarrollo y pruebas.

  • 2. Use JavaConfig para ayudar a evitar el uso de XML.

  • 3. Evite una gran cantidad de importaciones de Maven y varios conflictos de versión.

  • 4. Brindar asesoramiento sobre métodos de desarrollo.

  • 5. Inicie el desarrollo rápidamente proporcionando valores predeterminados.

  • 6. No se requiere un servidor web separado. Esto significa que ya no necesita iniciar Tomcat, Glassfish ni nada más.

  • 7. Se requiere menos configuración porque no hay un archivo web.xml. Simplemente agregue la clase anotada con @Configuration, luego agregue el método anotado con @Bean, y Spring cargará automáticamente el objeto y lo administrará como antes. Incluso puede agregar @Autowired a un método de bean para que Spring autoconecte las dependencias que necesita.

  • 8. Configuración basada en el entorno Con estas propiedades, puede pasar el entorno que está utilizando a la aplicación: -Dspring.profiles.active={enviornment}. Después de cargar el archivo de propiedades de la aplicación principal, Spring cargará los archivos de propiedades de la aplicación subsiguientes en (application{environment}.properties).

4. ¿Cuál es la anotación central de Spring Boot? ¿De qué anotaciones se compone principalmente?

La anotación en la clase de inicio es @SpringBootApplication, que también es la anotación principal de Spring Boot. La combinación principal incluye las siguientes tres anotaciones:

@SpringBootConfiguration: combina la anotación @Configuration para implementar la función del archivo de configuración. @EnableAutoConfiguration: active la función de configuración automática o desactive una opción de configuración automática, como desactivar la función de configuración automática del origen de datos: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }).

@ComponentScan: escaneo de componentes de resorte

5. ¿Cuáles son las formas de ejecutar Spring Boot?

1) Empaquete el comando o colóquelo en el contenedor para ejecutarlo 2) Use el complemento Maven/Gradle para ejecutar 3) Ejecute directamente el método principal para ejecutar

6. ¿Cómo entender Starters en Spring Boot?

Que son los entrantes:

Los starters pueden entenderse como starters, que contienen una serie de paquetes de dependencia que pueden integrarse en la aplicación. Puede integrar Spring y otras tecnologías en una sola parada sin buscar código de muestra y paquetes de dependencia en todas partes. Si desea usar Spring JPA para acceder a la base de datos, simplemente agregue la
dependencia de inicio springboot-starter-data-jpa y podrá usarla. Los iniciadores contienen muchas dependencias que se necesitan en el proyecto, se pueden ejecutar de forma rápida y continua, y son un conjunto de dependencias transitivas de administración admitidas.

Entrantes nombrados:

Los iniciadores oficiales de Spring Boot se denominan spring-boot-starter- y representan un tipo de aplicación específico. Los iniciadores de terceros no pueden comenzar con Spring-Boot, están reservados oficialmente por Spring Boot. Por lo general, un tercero debe llamarse así, como mybatis -spring
-boot-starter of mybatis.

Categoría de entrantes:

1. Iniciador de clase de aplicación Spring Boot

imagen.png

2. Iniciador de producción Spring Boot

imagen.png

.otros lanzadores de terceros

7. ¿Cómo ejecutar algún código específico cuando se inicia Spring Boot?

Si desea ejecutar algún código específico cuando se inicia Spring Boot, puede implementar la interfaz ApplicationRunner o CommandLineRunner Estas dos interfaces se implementan de la misma manera y solo proporcionan un método de ejecución. CommandLineRunner: comience a obtener parámetros de línea de comando

8. ¿Spring Boot necesita un contenedor separado para funcionar?

No es necesario, contenedores integrados como Tomcat/Jetty

9. ¿Qué es un monitor en Spring Boot?

El actuador de arranque de resorte es una de las funciones importantes en el marco de arranque de resorte. Los monitores de arranque de Spring lo ayudan a acceder al estado actual de las aplicaciones en ejecución en producción. Hay varias métricas que deben verificarse y monitorearse en un entorno de producción. Incluso algunas aplicaciones externas podrían estar utilizando estos servicios para activar mensajes de alerta para el personal relevante. El módulo del monitor expone un conjunto de puntos finales REST accesibles directamente como URL HTTP para verificar el estado

10. ¿Cómo usar Spring Boot para implementar el manejo de excepciones?

Spring proporciona una forma muy útil de manejar excepciones usando ControllerAdvice. Manejamos todas las excepciones lanzadas por la clase del controlador implementando una clase ControlerAdvice

11. ¿Cómo entiendes los Starters en Spring Boot?

Los starters pueden entenderse como starters, que contienen una serie de paquetes de dependencia que pueden integrarse en la aplicación. Puede integrar Spring y otras tecnologías en una sola parada sin buscar código de muestra y paquetes de dependencia en todas partes. Si desea usar Spring JPA para acceder a la base de datos, simplemente agregue la
dependencia de inicio spring-boot-starter-data-jpa y podrá usarla

12. ¿Cuáles son los arrancadores de springboot más utilizados?

spring-boot-starter-web incrustado tomcat y desarrollo web requiere soporte de servlet y jsp

spring-boot-starter-data-jpa compatibilidad con la base de datos spring-boot-starter-data-redis compatibilidad con la base de datos redis spring-boot-starter-data-solr compatibilidad con solr

mybatis-spring-boot-starter arranque de integración mybatis de terceros

13. ¿Cuáles son las formas en que SpringBoot realiza una implementación en caliente?

Hay dos formas principales: Spring
Loaded Spring-boot-devtools

14. Cómo entender el orden de carga de la configuración de Spring Boot

En Spring Boot, la configuración se puede cargar de las siguientes maneras. 1) archivo de propiedades;

2) archivos YAML, 3) variables de entorno del sistema;

4) argumentos de la línea de comandos, etc...

Bienvenido a unirse al intercambio de desarrollo de arquitectura Java: 857710406, ¡se distribuyen más preguntas de entrevistas y videos avanzados de forma gratuita!

15. ¿Cuáles son los archivos de configuración principales de Spring Boot? ¿Cuál es su diferencia?

Los archivos de configuración principales de Spring Boot son los archivos de configuración de la aplicación y de arranque. El archivo de configuración de la aplicación es fácil de entender y se utiliza principalmente para la configuración automática de proyectos Spring Boot. El archivo de configuración de arranque tiene los siguientes escenarios de aplicación.

.Al usar el centro de configuración de Spring Cloud Config, debe agregar propiedades de configuración conectadas al centro de configuración en el archivo de configuración de arranque para cargar la información de configuración del centro de configuración externo;

Algunas propiedades fijas que no se pueden anular;

.Algunos escenarios de cifrado/descifrado

16. Cómo integrar Spring Boot y ActiveMQ

Para integrar Spring Boot y ActiveMQ usamos la
dependencia spring-boot-starter-activemq. Requiere muy poca configuración y no requiere código repetitivo

17. ¿Qué es JavaConfig?

Spring JavaConfig es un producto de la comunidad Spring que proporciona un enfoque Java puro para configurar el contenedor Spring IoC. Por lo tanto, ayuda a evitar la configuración XML. Las ventajas de usar JavaConfig son:

1. Configuración orientada a objetos. Dado que las configuraciones se definen como clases en JavaConfig, los usuarios pueden aprovechar al máximo las funciones orientadas a objetos en Java. Una clase de configuración puede heredar de otra, anular sus métodos @Bean, etc.

2. Reducir o eliminar la configuración XML. Se han demostrado los beneficios de la configuración externalizada basada en los principios de inyección de dependencia. Sin embargo, muchos desarrolladores no quieren alternar entre XML y Java. JavaConfig proporciona a los desarrolladores un método Java puro para configurar contenedores Spring con un concepto similar a la configuración XML. Técnicamente hablando, es posible configurar el contenedor usando solo las clases de configuración de JavaConfig, pero en la práctica mucha gente piensa que mezclar y combinar JavaConfig con XML es lo ideal.

3. Tipo de seguridad y fácil de refactorizar. JavaConfig proporciona una forma segura de configurar el contenedor Spring. Gracias a la compatibilidad de Java 5.0 con los genéricos, los beans ahora se pueden recuperar por tipo en lugar de por nombre, sin conversión ni búsquedas basadas en cadenas.

18. ¿Cómo recargar cambios en Spring Boot sin reiniciar el servidor?

Esto se puede lograr usando herramientas DEV. Con esta dependencia, puede guardar cualquier cambio y el tomcat incorporado se reiniciará. Spring Boot tiene un módulo de herramientas de desarrollo (DevTools), que ayuda a mejorar la productividad del desarrollador. Un desafío importante para los desarrolladores de Java es implementar automáticamente los cambios de archivos en el servidor y reiniciar automáticamente el servidor. Los desarrolladores pueden volver a cargar los cambios en Spring Boot sin reiniciar el servidor. Esto eliminará la necesidad de implementar cambios manualmente cada vez. Spring Boot no tenía esta función cuando lanzó su primera versión. Esta es la función más solicitada por los desarrolladores. Los módulos de DevTools satisfacen completamente las necesidades de los desarrolladores. Este módulo estará deshabilitado en el entorno de producción. También proporciona una consola de base de datos H2 para probar mejor la aplicación.

org.springframework.boot spring-boot-devtools verdadero

19. ¿Qué es un monitor en Spring Boot?

El actuador de arranque de resorte es una de las funciones importantes en el marco de arranque de resorte. Los monitores de arranque de Spring lo ayudan a acceder al estado actual de las aplicaciones en ejecución en producción. Hay varias métricas que deben verificarse y monitorearse en un entorno de producción. Incluso algunas aplicaciones externas podrían estar utilizando estos servicios para activar mensajes de alerta para el personal relevante. El módulo del monitor expone un conjunto de puntos finales REST accesibles directamente como URL HTTP para verificar el estado.

20. ¿Cómo deshabilitar la seguridad del extremo del actuador en Spring Boot?

Todos los puntos finales HTTP confidenciales son seguros de forma predeterminada y solo los usuarios con la función ACTUATOR pueden acceder a ellos. La seguridad se
implementa mediante el método estándar HttpServletRequest.isUserInRole. Podemos utilizar para desactivar la seguridad. Solo se recomienda deshabilitar la seguridad si se accede al extremo del actuador detrás de un firewall.

21. ¿Cómo ejecutar la aplicación Spring Boot en un puerto personalizado?

Para ejecutar una aplicación Spring Boot en un puerto personalizado, puede especificar el puerto en application.properties.

servidor.puerto=8090

22. ¿Qué es YAML?

YAML es un lenguaje de serialización de datos legible por humanos. Suele utilizarse para archivos de configuración.

En comparación con los archivos de propiedades, los archivos YAML están más estructurados y son menos confusos si queremos agregar propiedades complejas a los archivos de configuración. Se puede ver que YAML tiene datos de configuración jerárquica.

23. ¿Cómo implementar la seguridad de la aplicación Spring Boot?

Para implementar la seguridad de Spring Boot, usamos la
dependencia spring-boot-starter-security y tenemos que agregar la configuración de seguridad. Requiere muy poco código. La clase de configuración tendrá que extender WebSecurityConfigurerAdapter y anular sus métodos.

24. ¿Cómo integrar Spring Boot y ActiveMQ?

Para integrar Spring Boot y ActiveMQ usamos

dependencias Requiere muy poca configuración y no requiere código repetitivo.

25. ¿Cómo implementar la paginación y clasificación usando Spring Boot?

Implementar la paginación con Spring Boot es muy simple. Es posible pasar un método paginable a un repositorio usando Spring Data-JPA.

26. ¿Qué es Swagger? ¿Lo implementaste con Spring Boot?

Swagger se usa ampliamente para visualizar las API, utilizando la interfaz de usuario de Swagger para proporcionar un espacio aislado en línea para los desarrolladores front-end. Swagger es una herramienta, especificación e implementación completa del marco para generar representaciones visuales de servicios web RESTful. Permite que los documentos se actualicen a la misma velocidad que el servidor. Cuando se define correctamente a través de Swagger, los consumidores pueden usar una cantidad mínima de lógica de implementación

para comprender e interactuar con los servicios remotos. Así que Swagger elimina las conjeturas de los servicios de llamadas.

27. ¿Qué son los perfiles de resorte?

Spring Profiles permite a los usuarios registrar beans en función de los archivos de configuración (dev, test, prod, etc.). Entonces, cuando la aplicación se ejecuta en desarrollo, solo se pueden cargar algunos beans, mientras que en PRODUCCIÓN se pueden cargar otros beans. Digamos que nuestro requisito es que la documentación de Swagger sea solo para entornos de control de calidad y que el resto de la documentación esté deshabilitada. Esto se puede hacer usando archivos de configuración. Spring Boot hace que trabajar con archivos de configuración sea muy simple.

28. ¿Qué es Spring Batch?

Spring Boot Batch proporciona funciones reutilizables que son importantes cuando se trata de una gran cantidad de registros, incluido el registro/rastreo, la gestión de transacciones, las estadísticas de procesamiento de trabajos, los reinicios de trabajos, los saltos y la gestión de recursos. También proporciona funciones y servicios técnicos más avanzados, lo que permite trabajos por lotes extremadamente altos y de alto rendimiento a través de técnicas de optimización y partición. Los trabajos por lotes de alto volumen tanto simples como complejos pueden utilizar el marco para procesar cantidades significativas de información de una manera altamente escalable.

29. ¿Qué es una plantilla de FreeMarker?

FreeMarker es un motor de plantillas basado en Java inicialmente enfocado en la generación de páginas web dinámicas utilizando la arquitectura de software MVC. La principal ventaja de usar Freemarker es la separación completa de las capas de presentación y de negocios. Los programadores pueden manejar el código de la aplicación, mientras que los diseñadores pueden manejar el diseño de la página html. Finalmente, usando freemarker, estos se pueden combinar para dar la página de salida final.

30. ¿Cómo usar Spring Boot para implementar el manejo de excepciones?

Spring proporciona una forma muy útil de manejar excepciones usando ControllerAdvice. Manejamos todas las excepciones lanzadas por la clase del controlador implementando una clase ControlerAdvice.

31. ¿Qué dependencias de Starter Maven usas?

Algunas de las dependencias a continuación se utilizan

spring-boot-iniciador-activemq
spring-boot-iniciador-seguridad

Esto ayuda a agregar menos dependencias y reducir los conflictos de versión.

32. ¿Qué es un ataque CSRF?

CSRF significa falsificación de solicitud entre sitios. Este es un ataque que obliga a los usuarios finales a realizar acciones no deseadas en aplicaciones web actualmente autenticadas. Los ataques CSRF se dirigen específicamente a las solicitudes de cambio de estado, no al robo de datos, porque el atacante no puede ver la respuesta a una solicitud falsificada.

Esto ayuda a agregar menos dependencias y reducir los conflictos de versión.

33. ¿Qué es WebSockets?

WebSocket es un protocolo de comunicación informática que proporciona un canal de comunicación full-duplex a través de una única conexión TCP.

imagen.png

  • 1. WebSocket es bidireccional: el uso del cliente o servidor WebSocket puede iniciar el envío de mensajes.

  • 2. WebSocket es dúplex completo: la comunicación entre el cliente y el servidor es independiente entre sí.

  • 3. Una sola conexión TCP: la conexión inicial usa HTTP, luego esta conexión se actualiza a una conexión basada en socket. Esta única conexión se utiliza para todas las comunicaciones futuras.

  • 4. Ligero: en comparación con http, el intercambio de datos de mensajes WebSocket es mucho más liviano.

34. ¿Qué es AOP?

En el proceso de desarrollo de software, las funciones que abarcan varios puntos de una aplicación se denominan problemas transversales. Estos temas transversales no son lo mismo que la lógica comercial principal de la aplicación. Entonces, separar estas preocupaciones transversales de la lógica comercial es donde entra en juego la Programación Orientada a Aspectos (AOP).

35. ¿Qué es Apache Kafka?

Apache Kafka es un sistema de mensajería distribuido de publicación y suscripción. Es un sistema de mensajería de publicación y suscripción escalable y tolerante a fallas que nos permite crear aplicaciones distribuidas. Este es un proyecto de nivel superior de Apache. Kafka es adecuado para el consumo de mensajes fuera de línea y en línea.

36. ¿Cómo podemos monitorear todos los microservicios de Spring Boot?

Spring Boot proporciona puntos finales de monitoreo para monitorear métricas de microservicios individuales. Estos puntos finales son útiles para obtener información sobre aplicaciones (por ejemplo, si están activas) y si sus componentes (como bases de datos, etc.) funcionan correctamente. Sin embargo, una gran desventaja o dificultad del uso del monitor es que tenemos que abrir el punto de conocimiento de la aplicación individualmente para saber su estado o salud. Imagine un microservicio que involucre 50 aplicaciones, el administrador tendría que presionar la terminal de ejecución para las 50 aplicaciones. Para ayudarnos a lidiar con esta situación, utilizaremos el proyecto de código abierto en . Está construido sobre Spring Boot Actuator, que proporciona una interfaz de usuario web que nos permite visualizar métricas para múltiples aplicaciones.

37. ¿Cuáles son los formatos de los archivos de configuración de Spring Boot? ¿Cual es la diferencia entre ellos?

.properties y .yml, la principal diferencia entre ellos es el diferente formato de escritura. 1).propiedades

app.user.name=javastack

2).yml

aplicación:
usuario:
nombre: javastack

Además, el formato .yml no admite la anotación @PropertySource para importar la configuración.

38. ¿Cuáles son las formas de habilitar las funciones de Spring Boot?

1) Heredar el
proyecto spring-boot-starter-parent 2) Importar las dependencias del proyecto spring-boot-dependencies

39. ¿Cuál es la estructura de directorios de Spring Boot?

cn
±javastack
±MiAplicación.java|
  ±Customer.java
±CustomerController.java±CustomerService.java±CustomerRepository.java
±order
±Order.java
±OrderController.java±OrderService.java±OrderRepository.java

Esta estructura de directorio es la práctica principal y recomendada, y la anotación @SpringBootApplication se agrega a la clase de entrada principal para habilitar varias capacidades de Spring Boot, como la configuración automática, el escaneo de componentes, etc.

40. ¿Cuáles son las formas de ejecutar Spring Boot?

1) Empaquete el comando o colóquelo en el contenedor para ejecutarlo 2) Use el complemento Maven/Gradle para ejecutar 3) Ejecute directamente el método principal para ejecutar

41. ¿Cuál es el principio de configuración automática de Spring Boot?

Las anotaciones @EnableAutoConfiguration, @Configuration y @ConditionalOnClass son el núcleo de la configuración automática. En primer lugar, debe ser un archivo de configuración y, en segundo lugar, se configura automáticamente de acuerdo con si existe esta clase en el classpath.

42. ¿Cómo ejecutar algún código específico cuando se inicia Spring Boot?

Puede implementar la interfaz ApplicationRunner o CommandLineRunner.Estas dos interfaces se implementan de la misma manera y ambas proporcionan solo un método de ejecución.

43. ¿De cuántas formas tiene Spring Boot para leer la configuración?

Spring Boot puede vincular variables a través de @PropertySource, @Value, @Environment, @ConfigurationProperties

44. ¿Qué marcos de registro admite Spring Boot? ¿Cuál es el marco de registro recomendado y predeterminado?

Spring Boot es compatible con Java Util Logging, Log4j2, Lockback como marco de registro, si usa Starters starter, Spring Boot usará Logback como marco de registro predeterminado

45. ¿Cómo define Spring Boot varios conjuntos de diferentes configuraciones de entorno?

Proporcione varios conjuntos de archivos de configuración, como:

applcation.properties
application-dev.properties
application-test.properties
application-prod.properties

Especificar un archivo de configuración específico en tiempo de ejecución

46. ​​¿Spring Boot es compatible con proyectos antiguos de Spring y cómo?

Para compatibilidad, use la anotación @ImportResource para importar el archivo de configuración del proyecto Spring antiguo.

47. ¿Cuáles son las formas de proteger las aplicaciones Spring Boot?

Usar HTTPS en producción

Use Snyk para verificar sus dependencias y actualizar a la última versión

Habilitar la protección CSRF

Evite ataques XSS con políticas de seguridad de contenido...

48. ¿Qué novedades tiene Spring Boot 2.X? ¿Cuál es la diferencia con 1.X?

Cambios de configuración

Actualización de la versión JDK

Actualización de la biblioteca de clases de terceros

Programación primavera reactiva con soporte HTTP/2

Más mejoras y mejoras a los enlaces de propiedades de configuración...

49. ¿Cómo recargar cambios en Spring Boot sin reiniciar el servidor?

Esto se puede lograr usando herramientas DEV. Con esta dependencia, puede guardar cualquier cambio y el tomcat incorporado se reiniciará.

Spring Boot tiene un módulo de herramientas de desarrollo (DevTools), que ayuda a mejorar la productividad del desarrollador. Un desafío importante para los desarrolladores de Java es implementar automáticamente los cambios de archivos en el servidor y reiniciar automáticamente el servidor.

Los desarrolladores pueden volver a cargar los cambios en Spring Boot sin reiniciar el servidor. Esto eliminará la necesidad de implementar cambios manualmente cada vez. Spring Boot no tenía esta función cuando lanzó su primera versión.

Esta es la función más solicitada por los desarrolladores. Los módulos de DevTools satisfacen completamente las necesidades de los desarrolladores. Este módulo estará deshabilitado en el entorno de producción. También proporciona una consola de base de datos H2 para probar mejor la aplicación.

org.springframework.bootspring-boot-devtoolstrue

50. El proceso de springboot integrando mybatis

Agregue la dependencia de inicio maven de mybatis

org.mybatis.spring.bootmybatis-spring-boot-starter1.2.0

Agregue la anotación @Mapper a la interfaz de mybatis para configurar la información de la fuente de datos en application.yml

51. ¿Cuál es la diferencia entre Spring Boot, Spring MVC y Spring?

primaveramarco

La característica más importante de Spring Framework es la inyección de dependencia. Todos los SpringModules son Inyección de Dependencia o Inversión de Control IOC.

Cuando usamos correctamente DI o IOC, podemos desarrollar aplicaciones débilmente acopladas. Las pruebas unitarias de aplicaciones débilmente acopladas se pueden realizar fácilmente.

PrimaveraMVC

Spring MVC proporciona un enfoque desacoplado para desarrollar aplicaciones web. Mediante el uso de algunos conceptos simples como DispatcherServelet, MoudlAndView y ViewResolver, el desarrollo de aplicaciones web será muy sencillo.

SpringBoot

El problema con Spring y SpringMVC es que hay muchos parámetros para configurar.

imagen.png

Spring Boot resuelve este problema con un proyecto iniciado y configurado automáticamente. Para crear aplicaciones listas para producción más rápido, Spring Boot proporciona algunas características no funcionales.

52. ¿Qué es Spring Boot Stater?

Un lanzador es un conjunto conveniente de descriptores de dependencia que se pueden colocar en su propio programa. Puede obtener todo el Spring y las tecnologías relacionadas que necesita en un solo lugar, sin la necesidad de buscar y copiar y pegar un montón de código de muestra según los descriptores.

Por ejemplo, si desea usar Sping y JPA para acceder a la base de datos, solo necesita que su proyecto incluya la
dependencia spring-boot-starter-data-jpa y estará listo para comenzar.

Pregunta 4 ¿Puede dar un ejemplo para explicar más sobre Staters?

Consideremos un ejemplo de Stater - Spring Boot Stater Web.

Si desea desarrollar una aplicación web o una aplicación que exponga servicios REST. Se prefiere Spring Boot Start Web. Vamos a crear un proyecto rápido para Spring Boot Start Web usando Spring Initializr.

Dependencias para Spring Boot Start Web

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

Las capturas de pantalla a continuación son las diferentes dependencias agregadas a nuestra aplicación

imagen.png

Las dependencias se pueden dividir en

imagen.png

Cualquier aplicación web clásica usará todas estas dependencias. Spring Boot Starter Web viene empaquetado con estas dependencias.

Como desarrollador, ya no necesito preocuparme por estas dependencias y sus versiones compatibles.

53. ¿Qué otras opciones de proyecto de inicio ofrece Spring Boot?

Spring Boot también proporciona otros proyectos de inicio que incluyen dependencias típicas para 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 de integración spring-boot-starter-jdbc: JDBC tradicional

spring-boot-starter-hateoas: agrega la funcionalidad HATEOAS a los servicios

spring-boot-starter-security - Autenticación y autorización con SpringSecurity spring-boot-starter-data-jpa - Spring Data JPA con Hibeernate

spring-boot-starter-data-rest: publique servicios REST simples con Spring Data REST

54. ¿Cómo crea Spring rápidamente aplicaciones listas para producción?

Spring Boot está dedicado a aplicaciones rápidas listas para producción. Con este fin, proporciona algunas características no funcionales listas para usar, como almacenamiento en caché, registro, monitoreo y servidores integrados.

spring-boot-starter-actuator: use algunas funciones avanzadas como monitorear y rastrear su aplicación

spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat: elija su contenedor de servlet incrustado específico

spring-boot-starter-cache: ¿cuál es la versión mínima de Java requerida para habilitar el soporte de almacenamiento en caché de Spring Framework ###Spring2 y Spring5?

Spring Boot 2.0 requiere Java 8 o posterior. Java6 y Java7 ya no son compatibles. Lectura recomendada:

55. ¿Cuál es la forma más fácil de crear un proyecto Spring Boot?

Spring Initializr es una gran herramienta para iniciar proyectos Spring Boot.

spring-boot-starter-cache: ¿cuál es la versión mínima de Java requerida para habilitar el soporte de almacenamiento en caché de Spring Framework ###Spring2 y Spring5?

Spring Boot 2.0 requiere Java 8 o posterior. Java6 y Java7 ya no son compatibles.

imagen.png

Como se muestra en la imagen de arriba, debemos seguir algunos pasos: inicie sesión en Spring Initializr, elija lo siguiente: seleccione
com.in28minutes.springboot como grupo

Seleccione servicios de estudiantes y seleccione las siguientes dependencias para el componente

WebActuatorDevTools

Haga clic para generar GenerateProject

Importe el proyecto a Eclipse. proyecto maven existente de importación de archivos

56. ¿Spring Initializr es la única forma de crear proyectos Spring Boot?

no.

Spring Initiatlizr facilita la creación de proyectos Spring Boot; sin embargo, también puede iniciar un proyecto configurando un proyecto maven y agregando las dependencias correctas. En nuestro curso de primavera, usamos dos métodos para crear proyectos.

El primer método es http://start.spring.io.

Otra forma es hacerlo manualmente en el proyecto titulado "Aplicación Web Básica".

Hay varios pasos importantes para configurar manualmente un proyecto Maven:

En Eclipse, use Archivo - Nuevo proyecto Maven para crear un nuevo proyecto para agregar dependencias.

Agregue el complemento experto.

Agregue la clase de aplicación Spring Boot. Aquí, los preparativos están hechos!

57. ¿Cómo uso SpringBoot para recargar automáticamente mi aplicación?

Utilice las herramientas de desarrollo de Spring Boot.

Agregar las herramientas de desarrollo de Spring Boot a su proyecto es simple.

Agregue las siguientes dependencias a su Spring Boot Project pom.xml

imagen.png

Reinicia la aplicación y listo.

Del mismo modo, si desea cargar páginas automáticamente, eche un vistazo a FiveReload.

Durante mis pruebas, encontré la vulnerabilidad LiveReload, si la encontró durante las pruebas, háganoslo saber.

58. ¿Qué es un servidor integrado? ¿Por qué deberíamos usar un servidor integrado?

Piense en lo que se necesita para implementar una aplicación en su máquina virtual. Paso 1: Instalar Java

La segunda parte: instalar el servidor web o de aplicaciones (Tomat/Wbesphere/Weblogic, etc.) La tercera parte: implementar el paquete war de aplicaciones

Si queremos simplificar estos pasos, ¿cómo debemos hacerlo?

Pensemos en cómo hacer que el servidor forme parte de la aplicación.

Solo necesita una máquina virtual con Java instalado y puede implementar aplicaciones directamente en ella, ¿no es genial?

Esta idea es el origen de los servidores integrados.

Cuando creamos una aplicación implementable, incrustaremos un servidor (por ejemplo, Tomcat) en el servidor implementable.

Por ejemplo, para una aplicación Spring Boot, puede generar un archivo jar de aplicación que contenga Embedded Tomcat. Puede ejecutar la aplicación web como una aplicación Java normal.

Un servidor incorporado es donde nuestra unidad ejecutable contiene los archivos binarios del servidor (por ejemplo, tomcat.jar).

59. ¿Cómo agregar código JS común en Spring Boot?

En la carpeta de origen, cree una carpeta llamada estática. Luego, puede poner su contenido estático allí. Por ejemplo, la ruta a myapp.js es resources\static\js\myapp.js

Puede consultar su uso en jsp

<csriptsrc=“/js/myapp.js”>

错误:El navegador HAL me da un error no autorizado: se requiere autenticación completa para acceder a este recurso.

¿Cómo arreglar este error?

imagen.png

Dos métodos:

Método 1: desactivar la verificación de seguridad

aplicación.propiedades

administración.seguridad.habilitada: FALSO

Método 2: busque en el registro la contraseña y pásela en el encabezado de la solicitud

60. ¿Qué es la fecha de primavera?

La misión de Spring Data es proporcionar un modelo de programación familiar, coherente y basado en Spring para acceder a los datos manteniendo la especificidad del almacén de datos subyacente. Esto facilita el uso de tecnologías de acceso a datos, bases de datos relacionales y no relacionales, marcos de reducción de mapas y servicios de datos basados ​​en la nube.

Para hacerlo un poco más fácil, Spring Data proporciona la interfaz de Abstracciones que no está limitada por la fuente de datos subyacente. aquí hay un ejemplo

interfaceTodoRepositoryextendsCrudRepository<Todo,Largo>{

61. ¿Qué es Spring Data REST?

Spring Data TEST se puede utilizar para publicar recursos HATEOAS RESTful en Spring Database. Aquí hay un ejemplo usando JPA

@RepositoryRestResource(collectionResourceRel=“todos”,ruta=“todos”)
publicinterfaceTodoRepository
extendsPagingAndSortingRepository<Todo,Long>{

Sin escribir demasiado código, podemos publicar una API RESTful en la base de datos Spring. A continuación se muestran algunos ejemplos de servidores de PRUEBA

CORREO

URL:http://localhost:8080/todosUse Header:Content-Type:Type:application/jsonRequest Content

el código se muestra a continuación

imagen.png

contenido de respuesta

imagen.png

La respuesta contiene el href del recurso recién creado.

62. ¿Cómo funciona path=”users”, collectionResourceRel=”users” con Spring Data Rest?

imagen.png

ruta: el segmento de ruta para exportar para este recurso.

collectionResourceRel: el valor rel que se utilizará al generar enlaces a los recursos de la colección. Se utiliza al generar enlaces HATEOAS.

63. Cuando una aplicación Spring Boot se ejecuta como una aplicación Java, ¿qué sucede en segundo plano?

Si usa el IDE de Eclipse, el complemento maven de Eclipse garantiza que, tan pronto como se agreguen los cambios en las dependencias o los archivos de clase, se compilarán y estarán listos en el archivo de destino. Después de eso, es lo mismo que cualquier otra aplicación Java.

Cuando inicia la aplicación Java, el archivo de configuración automática Spring Boot se habilita mágicamente.

Cuando la aplicación Spring Boot detecta que está desarrollando una aplicación web, inicia Tomcat.

64. ¿Podemos reemplazar tomcat con jetty en spring-boot-starter-web?

Elimine las dependencias existentes en spring-boot-starter-web y agregue lo siguiente.

imagen.png

imagen.png

65. ¿Cómo generar un archivo WAR usando Spring Boot?

Lectura recomendada:

El siguiente es un enlace directo a la documentación de Spring:

66. ¿Cómo implementar en diferentes servidores usando Spring Boot?

Tienes que hacer los siguientes dos pasos:

Genera un archivo war en un proyecto.

Despliéguelo en su servidor favorito (websphere o Weblogic o Tomcat, etc.).

Paso 1: Esta guía de introducción debería ayudar:

Paso 2: Depende de su servidor.

67. ¿Dónde está la diferencia entre RequestMapping y GetMapping?

RequestMapping tiene atributos de clase y puede realizar GET, POST, PUT u otros métodos de solicitud en la anotación.

GetMapping es un caso especial del método de solicitud GET. Es solo una extensión de ResquestMapping para mayor claridad.

68. ¿Por qué no recomendamos usar Spring Data Rest en aplicaciones reales?

¡Creemos que Spring Data Rest es excelente para la creación rápida de prototipos! Usar con precaución en aplicaciones grandes. Con Spring Data REST puede publicar sus entidades de datos directamente como servicios RESTful.

Cuando diseña un servidor RESTful, las mejores prácticas dictan que su interfaz debe tener en cuenta dos cosas importantes:

su gama de modelos. Tu cliente.

Con Spring Data REST, ya no necesita pensar en estos dos aspectos, solo necesita publicar la entidad como un servicio de PRUEBA.

Es por eso que recomendamos usar Spring Data Rest además de la creación rápida de prototipos o como una solución inicial para un proyecto. Esta no es una buena nota para un proyecto de evolución completa.

69. ¿Cómo cambiar el nombre del paquete de un proyecto en Spring Initializer?

La buena noticia es que puedes personalizarlo. Haga clic en el enlace "Ir a la versión completa". ¡Puede configurar el nombre del paquete que desea modificar!

70. ¿Dónde puedo encontrar la lista completa de propiedades que se pueden configurar en application.propertierde?

Aquí está la guía completa:

71. ¿Cuáles son las diferencias entre JPA e Hibernate?

en breve

JPA es una especificación o interfaz Hibernate es una implementación de JPA

Cuando usamos JPA, no necesitamos usar el paquete de importación de hibernación cuando usamos las anotaciones e interfaces en el paquete javax.persistence.

Recomendamos usar anotaciones JPA porque no las vinculamos a Hibernate como una implementación. Más tarde (lo sé, menos del uno por ciento de probabilidad), podemos usar otra implementación de JPA.

72. ¿Qué dependencias se requieren para iniciar una aplicación JPA conectada a la base de datos en memoria H2 usando Spring Boot?

En un proyecto de Spring Boot, puede cargar la consola H2 cuando se asegura de que las siguientes dependencias estén todas en el classpath.

lanzador web

h2

Otras dependencias del habilitador de datos jpa son las siguientes:

imagen.png

Algunos puntos a tener en cuenta:

Una memoria de datos interna existe solo durante la ejecución de la aplicación. Esta es una manera eficiente de aprender el marco. No es la forma en que desea que sea la aplicación del mundo real.

En la pregunta "¿Cómo me conecto a una base de datos externa?" explicamos cómo conectarse a una base de datos de su elección.

73. ¿Cómo elegir Hibernate como la implementación predeterminada de JPA sin ninguna configuración?

Porque Spring Boot se configura automáticamente. A continuación se muestran las dependencias que agregamos

  org.springframework.boot spring-boot-starter-data-jpa

spring-boot-stater-data-jpa tiene dependencias de transición para Hibernate y JPA.

Cuando Spring Boot detecta Hibernate en el classpath, lo configurará automáticamente como la implementación JPA predeterminada.

74. ¿Dónde está la información de conexión de la base de datos especificada? ¿Cómo sabe que se conecta automáticamente a H2?

Esa es la magia de la configuración automática de Spring Boot.

De:

La configuración automática de Spring Boot intenta configurar automáticamente su aplicación Spring en función de las dependencias de jar que haya agregado. Por ejemplo, si HSQLDBis existe en su classpath y el bean de conexión de la base de datos no se ha configurado manualmente, podemos configurar automáticamente una base de datos en memoria.

Otras lecturas:

75. ¿Cómo nos conectamos a una base de datos externa como MSSQL u orcale?

Pensemos en esto usando MySQL como ejemplo:

Paso 1: agregue las dependencias del conector mysql a pom.xml

imagen.png

Paso 2: elimina las dependencias de H2 de pom.xml

O al menos convertirlo en el alcance de la prueba.

imagen.png

Paso 3: instale su base de datos MySQL

Paso 4: configure su conexión de base de datos MySQL

Configurar aplicaciones.propiedades

imagen.png

Paso 5 - ¡Reinicia y estás listo para comenzar!

¡Es así de simple!

76. ¿Cuál es el nombre de la base de datos H2 predeterminada configurada por Spring Boot? ¿Por qué el nombre de base de datos predeterminado es testdb?

En application.properties, se enumeran todos los valores predeterminados

Encuentre las propiedades a continuación

spring.datasource.name=testdb#Nombredelafuentededatos.

Si está utilizando la base de datos de almacenamiento interno H2, define el nombre que usará Spring Boot para instalar su base de datos H2.

77. Si H2 no está en el classpath, ¿ocurrirá la situación anterior?

informará el siguiente error

No se puede determinar la clase de controlador de la base de datos integrada para el tipo de base de datos NINGUNO

Agregue H2 a pom.xml y reinicie su servidor

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leech, se recomienda guardar la imagen y cargarla directamente (img-LE3rHXvv-1660643940589) (https://upload-images.jianshu.io/upload_images /28366454-b2e1b47b75680772.png ?imageMogr2/orientación automática/strip%7CimageView2/2/w/1240)]

78. ¿Puede dar un ejemplo del uso de ReadOnly como gestión de transacciones?

Cuando lee el contenido de la base de datos, desea configurar la descripción del usuario u otra descripción en la transacción en modo de solo lectura para que Hebernate no necesite verificar la entidad nuevamente en busca de cambios. Esto es muy eficiente.

79. ¿Cuál es la mejor manera de publicar configuraciones personalizadas para las aplicaciones de usuario de Spring Boot?

El problema con @Value es que puede asignar su valor de configuración a través de la aplicación. Una mejor operación es adoptar un enfoque centralizado. Puede definir un componente de configuración mediante @ConfigurationProperties.

imagen.png

Puede configurar parámetros en application.properties.

imagen.png

80. ¿Cuáles son los requisitos para los archivos de configuración?

El desarrollo de aplicaciones empresariales es complejo y necesita una combinación de entornos:

desarrollador

control de calidad

EscenarioProducción

En cada entorno, desea diferentes configuraciones de aplicaciones.

Los archivos de configuración facilitan diferentes configuraciones de aplicaciones en diferentes entornos.

Spring y Spring Boot brindan una funcionalidad que puede especificar.

¿Cuáles son las configuraciones de diferentes entornos en diferentes archivos de configuración? Establece el perfil activo para un entorno determinado.

Spring Boot elegirá la configuración de la aplicación en función del perfil activo establecido en el entorno específico.

81. ¿Cómo usar el archivo de configuración para configurar la configuración de un entorno específico a través de Spring Boot?

El archivo de configuración no es la clave para configurar el entorno.

En el siguiente ejemplo, usaremos dos archivos de configuración

devprod

La configuración de la aplicación predeterminada está en application.properties. Veamos el siguiente ejemplo: application.properties

imagen.png

Queremos personalizar la propiedad application.properties para el archivo de desarrollo. Necesitamos crear un archivo llamado
application-dev.properties y anular las propiedades que queremos personalizar.

application-dev.propiedades

basic.message: mensaje dinámico en DEV

Una vez que haya configurado específicamente el perfil, debe establecer un perfil activo en el entorno. Hay varias maneras de hacer esto:

Use Dspring.profiles.active=prod en los parámetros de VM

Use spring.profiles.active=prod en application.properties

82. ¿Cómo configuramos una aplicación Spring Boot con Maven?

Podemos incluir Spring Boot en un proyecto Maven como cualquier otra biblioteca. Sin embargo, la mejor manera es
heredar del proyecto spring-boot-starter-parent y declarar una dependencia en el iniciador Spring Boot. Hacer esto permite que nuestro proyecto reutilice la configuración predeterminada de Spring Boot. Heredar el proyecto spring-boot-starter-parent es muy simple: solo necesitamos especificar un elemento principal en pom.xml:

imagen.png

Podemos encontrar la última versión de
spring-boot-starter-parent en el repositorio central de Maven. El método anterior es muy conveniente pero no necesariamente satisface las necesidades reales. Por ejemplo, la empresa requiere que todas las dependencias del proyecto se construyan a partir de una lista de materiales estándar, no podemos hacerlo de la manera anterior. En este caso, podemos hacer una referencia de la siguiente manera:

imagen.png

El contenido explicado en este artículo es la serie de entrevistas de Java: Preguntas de la entrevista de Spring Boot (82 análisis completo)

imagen.png

imagen.png

Supongo que te gusta

Origin blog.csdn.net/m0_54850604/article/details/126371568
Recomendado
Clasificación