¿Qué preguntaste en la entrevista de Spring Boot 2020? ¡Resuma estas 22 preguntas imprescindibles de la entrevista! (Con respuesta)

Inserte la descripción de la imagen aquí
En los últimos años, los microservicios populares son las preguntas de la entrevista que las empresas y los BATJ de primera línea les encanta hacer. Hoy, retomaré las preguntas de la entrevista de Spring Boot que siempre se hacen este año. ¿Qué has preguntado? Además de los puntos de conocimiento de Spring Boot, también compilé algunas de las últimas preguntas de entrevistas de Java y puntos de conocimiento básicos aquí, que pueden ayudarlo a mejorar y avanzar en sus habilidades. Los amigos que lo necesiten pueden hacer clic: haga clic aquí, haga clic en esto , contraseña: csdn.
Inserte la descripción de la imagen aquí

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 hacer 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 sólida con la menor cantidad de trabajo.

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

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 estos atributos, 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 es ideal mezclar y combinar JavaConfig con XML.

(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.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>

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.

He compilado 1,000 283 páginas de documentos pdf para preguntas de entrevistas de Java para múltiples compañías en 2020. Los amigos que lo necesiten pueden hacer clic: haga clic en esto, haga clic en esto , código: csdn.
Inserte la descripción de la imagen aquí

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, puede lograr trabajos 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 y 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 las siguientes dependencias:
spring-boot-starter-activemq
spring-boot-starter-security
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 con el 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 y 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.

Al final

Proporcione materiales de aprendizaje de arquitectura Java gratuitos, el contenido de tecnología de aprendizaje incluye: Spring, Dubbo, MyBatis, RPC, análisis de código fuente, alta concurrencia, alto rendimiento, distribuido, optimización del rendimiento, desarrollo de arquitectura avanzada de microservicios, etc.

Los amigos necesitados pueden hacer clic: ¡ haga clic aquí! ¡Haga clic en esto! , Código: csdn.

También hay puntos de conocimiento básicos de Java + un conjunto completo de materiales y videos de aprendizaje de arquitectos + libros de entrevistas de primera línea + se pueden obtener plantillas de currículum de entrevistas + Preguntas de la entrevista de Ali Meituan Netease Tencent Xiaomi Iqiyi Kuaishou Bilibili + Colección de código fuente de Spring + Arquitectura Java Libro electrónico práctico + últimas preguntas de la entrevista de 2020 de los principales fabricantes.
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_48011329/article/details/109332329
Recomendado
Clasificación