Preguntas de la entrevista de SpringBoot 2020, ¿cuántas?

Preguntas de la entrevista de Spring Boot
1. ¿Qué es Spring Boot?

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

3. ¿Qué es JavaConfig?

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

5. ¿Qué es el monitor en Spring Boot?

6. ¿Cómo deshabilitar la seguridad del punto final del actuador en Spring Boot?

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

8. ¿Qué es YAML?

9. ¿Cómo realizar la seguridad de la aplicación Spring Boot?

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

11. ¿Cómo usar Spring Boot para implementar paginación y clasificación?

12. ¿Qué es Swagger? ¿Lo ha implementado con Spring Boot?

13. ¿Qué es Spring Profiles?

14. ¿Qué es Spring Batch?

15. ¿Qué es una plantilla FreeMarker?

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

17. ¿Qué dependencias de maven de arranque usaste?

18. ¿Qué es un ataque CSRF?

19. ¿Qué es WebSockets?

20. ¿Qué es AOP?

21. ¿Qué es Apache Kafka?

22. ¿Cómo monitoreamos todos los microservicios Spring Boot?

1. ¿Qué es Spring Boot?
A lo largo de los años, con la incorporación de nuevas funciones, la primavera se ha vuelto cada vez más compleja. Visite la página del sitio web oficial de Spring, veremos todas las diferentes funciones del proyecto Spring que se pueden usar en nuestra aplicación. Si se debe iniciar un nuevo proyecto de Spring, debemos agregar la ruta de compilación o agregar dependencias de Maven, configurar el servidor de aplicaciones y agregar la configuración de Spring. Por lo tanto, comenzar un nuevo proyecto de primavera requiere mucho esfuerzo, porque ahora debemos hacerlo todo desde cero.

Spring Boot es la solución a este problema. Spring Boot se ha construido sobre el marco de primavera 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 la menor cantidad de trabajo.

2. ¿Cuáles son las ventajas de Spring Boot?
Las ventajas de Spring Boot son:

1. Reducir el tiempo y el esfuerzo de desarrollo y pruebas.

2. El uso de JavaConfig ayuda a evitar el uso de XML.

3. Evite una gran cantidad de importaciones de Maven y varios conflictos de versiones.

4. Brindar asesoramiento y métodos de desarrollo.

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

6. No es necesario un servidor web independiente. Esto significa que ya no necesita iniciar Tomcat, Glassfish o cualquier otra cosa.

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

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á el archivo de propiedades de la aplicación subsiguiente en (aplicación {entorno} .properties).

3. ¿Qué es JavaConfig?
Spring JavaConfig es un producto de la comunidad Spring y proporciona un método Java puro para configurar el contenedor Spring IoC. Por lo tanto, ayuda a evitar el uso de la configuración XML. Las ventajas de utilizar JavaConfig son:

(1) Configuración orientada a objetos. Dado que la configuración se define como una clase en JavaConfig, los usuarios pueden hacer un uso completo de las funciones orientadas a objetos en Java. Una clase de configuración puede heredar otra, anular su método @Bean, etc.

(2) Reducir o eliminar la configuración XML. Se han comprobado los beneficios de la configuración externalizada basada en el principio 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 similar a los conceptos de configuración XML. Desde un punto de vista técnico, es factible usar solo la clase de configuración JavaConfig para configurar el contenedor, pero de hecho mucha gente piensa que mezclar y hacer coincidir JavaConfig con XML es ideal.

(3) Tipo de seguridad y refactorización amigable. JavaConfig proporciona una forma segura de configurar el contenedor Spring. Gracias al soporte de Java 5.0 para genéricos, los beans ahora se pueden recuperar por tipo en lugar de por nombre, sin ningún tipo de conversión o búsqueda basada en cadenas.

4. ¿Cómo recargar los cambios en Spring Boot sin reiniciar el servidor?
Esto se puede lograr utilizando la herramienta 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 de los desarrolladores. Uno de los principales desafíos que enfrentan los desarrolladores de Java es implementar automáticamente los cambios de archivos en el servidor y reiniciarlo automáticamente. 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 característica que más necesitan los desarrolladores. El módulo DevTools satisface completamente las necesidades de los desarrolladores. Este módulo se desactivará en el entorno de producción. También proporciona una consola de base de datos H2 para probar mejor las aplicaciones.

org.springframework.boot spring-boot-devtools true 5. ¿Qué es el monitor en Spring Boot? El actuador de arranque de resorte es una de las funciones importantes en el marco de arranque de resorte. El monitor de arranque Spring le ayuda a acceder al estado actual de la aplicación en ejecución en el entorno de producción. Se deben verificar y monitorear varios indicadores en un entorno de producción. Incluso algunas aplicaciones externas pueden estar utilizando estos servicios para activar mensajes de alerta al personal relevante. El módulo de monitoreo expone un conjunto de puntos finales REST a los que se puede acceder directamente como URL HTTP para verificar el estado.

6. ¿Cómo deshabilitar la seguridad del punto final del actuador en Spring Boot?
De forma predeterminada, todos los puntos finales HTTP sensibles son seguros y solo los usuarios con el rol ACTUATOR pueden acceder a ellos. La seguridad se implementa utilizando el método estándar HttpServletRequest.isUserInRole. Podemos utilizar para desactivar la seguridad. Solo se recomienda desactivar la seguridad si se accede al punto final del actuador detrás de un firewall.

7. ¿Cómo ejecutar la aplicación Spring Boot en un puerto personalizado?
Para ejecutar aplicaciones Spring Boot en un puerto personalizado, puede especificar el puerto en application.properties. server.port = 8090

8. ¿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, si queremos agregar propiedades complejas al archivo de configuración, el archivo YAML es más estructurado y menos confuso. Se puede ver que YAML tiene datos de configuración jerárquica.

9. ¿Cómo realizar la seguridad de la aplicación Spring Boot?
Para lograr la seguridad de Spring Boot, usamos la dependencia spring-boot-starter-security y se debe agregar la configuración de seguridad. Requiere muy poco código. La clase de configuración deberá ampliar WebSecurityConfigurerAdapter y anular sus métodos.

10. ¿Cómo integrar Spring Boot y ActiveMQ?
Para integrar Spring Boot y ActiveMQ, usamos dependencias. Requiere muy poca configuración y ningún código repetitivo.

11. ¿Cómo usar Spring Boot para implementar paginación y clasificación?
Usar Spring Boot para implementar la paginación es muy simple. Utilice Spring Data-JPA para pasar paginable al método de repositorio.

12. ¿Qué es Swagger? ¿Lo ha implementado con Spring Boot?
Swagger se usa ampliamente para visualizar API, utilizando la interfaz de usuario de Swagger para proporcionar entornos sandbox en línea para desarrolladores de aplicaciones para el usuario. Swagger es una herramienta para generar representaciones visuales de servicios web RESTful, especificación e implementación completa del marco. Permite que los documentos se actualicen a la misma velocidad que el servidor. Cuando Swagger lo define correctamente, los consumidores pueden utilizar la menor cantidad de lógica de implementación para comprender e interactuar con los servicios remotos. Por lo tanto, Swagger elimina las conjeturas al llamar a los servicios.

13. ¿Qué es Spring Profiles?
Spring Profiles permite a los usuarios registrar beans basados ​​en archivos de configuración (dev, test, prod, etc.). Por lo tanto, cuando la aplicación se está ejecutando en desarrollo, solo se pueden cargar ciertos beans, mientras que en PRODUCCIÓN se pueden cargar algunos otros beans. Supongamos que nuestro requisito es que el documento Swagger solo sea aplicable al entorno de control de calidad y que todos los demás documentos estén deshabilitados. Esto se puede hacer usando archivos de configuración. Spring Boot facilita el uso de archivos de configuración.

14. ¿Qué es Spring Batch?
Spring Boot Batch proporciona funciones reutilizables que son muy importantes cuando se procesan una gran cantidad de registros, incluido el registro / seguimiento, la gestión de transacciones, las estadísticas de procesamiento de trabajos, el reinicio de trabajos, la omisión y la gestión de recursos. También proporciona funciones y servicios técnicos más avanzados.A través de la optimización y la tecnología de partición, se pueden realizar trabajos de procesamiento por lotes extremadamente altos y de alto rendimiento. Los trabajos de procesamiento por lotes simples y complejos pueden utilizar el marco para procesar cantidades importantes y grandes de información de una manera altamente escalable.

15. ¿Qué es una plantilla FreeMarker?
FreeMarker es un motor de plantillas basado en Java que inicialmente se centró en el uso de la arquitectura de software MVC para la generación dinámica de páginas web. La principal ventaja de utilizar Freemarker es la separación completa de la capa de presentación y la capa empresarial. Los programadores pueden manejar el código de la aplicación, mientras que los diseñadores pueden manejar el diseño de páginas html. Finalmente, use freemarker para combinarlos y obtener la página de salida final.

16. ¿Cómo usar Spring Boot para implementar el manejo de excepciones?
Spring proporciona una forma muy útil de manejar excepciones usando ControllerAdvice. Implementamos una clase ControlerAdvice para manejar todas las excepciones lanzadas por la clase del controlador.

17. ¿Qué dependencias de maven de arranque usaste?
Se utilizan algunas de las siguientes dependencias

Spring-boot-starter-activemq

primavera-arranque-arranque-seguridad

Esto ayuda a aumentar menos dependencias y reducir los conflictos de versiones.

18. ¿Qué es un ataque CSRF?
CSRF significa falsificación de solicitudes entre sitios. Este es un ataque que obliga al usuario final a realizar acciones no deseadas en la aplicación web actualmente autenticada. Los ataques CSRF se dirigen específicamente a las solicitudes de cambio de estado, no al robo de datos, porque los atacantes no pueden ver las respuestas a las solicitudes falsificadas.

19. ¿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.

1. WebSocket es un cliente o servidor WebSocket de uso bidireccional para iniciar el envío de mensajes.

2. WebSocket es cliente de dúplex completo y la comunicación del servidor es independiente entre sí.

3. Conexión TCP única: la conexión inicial utiliza HTTP y luego esta conexión se actualiza a una conexión basada en socket. Entonces esta única conexión se utiliza para todas las comunicaciones futuras.

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

20. ¿Qué es AOP?
En el proceso de desarrollo de software, las funciones que abarcan varios puntos de una aplicación se denominan problemas cruzados. Estos temas transversales son diferentes de la lógica comercial principal de la aplicación. Por lo tanto, separar estas preocupaciones transversales de la lógica empresarial es el lugar para la programación orientada a aspectos (AOP).

21. ¿Qué es Apache Kafka?
Apache Kafka es un sistema de mensajería de publicación-suscripción distribuido. Es un sistema de mensajería de publicación-suscripción escalable y tolerante a fallos, que nos permite crear aplicaciones distribuidas. Este es un proyecto de nivel superior de Apache. Kafka es adecuado para el consumo de mensajes en línea y sin conexión.

22. ¿Cómo monitoreamos todos los microservicios Spring Boot?
Spring Boot proporciona puntos finales de monitoreo para monitorear las métricas de cada microservicio. Estos puntos finales son útiles para obtener información sobre aplicaciones (por ejemplo, si se han iniciado) y si sus componentes (como bases de datos, etc.) funcionan correctamente. Sin embargo, una de las principales desventajas o dificultades de utilizar el monitor es que debemos abrir los puntos de conocimiento de la aplicación por separado para entender su estado o salud. Imagine un microservicio que involucra 50 aplicaciones. El administrador tendrá que acceder a los terminales de ejecución de las 50 aplicaciones. Para ayudarnos a lidiar con esta situación, usaremos el proyecto de código abierto ubicado en. Está construido sobre Spring Boot Actuator, que proporciona una interfaz de usuario web que nos permite visualizar las métricas de múltiples aplicaciones.

Referencia: "¡Los últimos conceptos básicos de Java de 2020 y tutoriales en video detallados y rutas de aprendizaje!
Enlace original: https://juejin.cn/post/6914271211652399111

Supongo que te gusta

Origin blog.csdn.net/weixin_46699878/article/details/112274959
Recomendado
Clasificación