¿Qué es el despliegue en caliente?
Todos saben que durante el desarrollo del proyecto, los datos de la página o la estructura de datos a menudo se cambian. Para mostrar el efecto de cambio, a menudo necesita reiniciar la aplicación para ver el efecto de cambio. De hecho, es un nuevo archivo de clase que se recompina y se genera. Este archivo registra varias información correspondiente al código, y luego el archivo de clase será cargado por el cargador de clases de la máquina virtual.
La implementación en caliente aprovecha esta característica. Se escucha al hecho de que si se cambia el archivo de clase, creará un nuevo cargador de clases para cargar el archivo. Después de una serie de procesos, los resultados finalmente se nos presentarán.
Mecanismo de carga de clase
El compilador puede compilar el código en un archivo de clase que almacena bytecode. El archivo de clase almacena varias información y eventualmente se cargará en una máquina virtual para ejecutar y usar. Mecanismo de carga de clase (extraído de "comprensión profunda de la máquina virtual Java") La máquina virtual carga los datos que describen la clase desde el archivo de clase en la memoria y verifica, convierten, analiza e inicializa los datos, y finalmente forma un tipo Java que puede ser utilizado directamente por la máquina virtual.
Spring Boot implementa la implementación en caliente
Spring Boot implementa la implementación en caliente de las siguientes maneras:
Resorte cargado
Este método se carga en forma de un complemento Maven, por lo que se inicia con el comando MVEN mvn spring-boot:run cuando se inicia, pero se inicia usando Application.run. No es válido porque el mecanismo de complemento Maven se ha omitido al comenzar la aplicación.
Método de integración de POM:
<Ditor> <glugins> <glugin> <proupid> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> <pendencies> <pendency> <proupid> org.springframework </groupid> <artifactid> springloaded </artifactid> <versole> 1.5.5.5. </glugin> </glugin> </glugins> </bield>
Boot-Boot-Devtools
Este método se puede usar para reiniciar la aplicación después de modificar el archivo.
Integración de POM:
<
Atención de integración
#Shield thymeleaf caché (sugerencia: el entorno de desarrollo se establece en falso, el entorno de generación se establece en verdadero) spring.thymeleaf.cache = false
1. Para DevTools, puede especificar directorios o excluir directorios para la implementación en caliente.
#El archivo que agrega que el directorio requiere reinspring.devtools.restart.additional-paths = src/main/java#El archivo que excluye que el directorio no requiere reinspring.devtools.restart.exclude = static/**, public/**
Establecer la idea para habilitar la modificación del archivo para reiniciar automáticamente el proyecto
1. Encuentre las preferencias de la idea -> construir, ejecución, implementación -> compilador, verificar el proyecto de compilación automáticamente
2. Vuelva a la interfaz normal de la idea. Use la clave de acceso directo+opción+comando+/ para Mac. La tecla de acceso directo en la ventana es Shift+Ctrl+Alt+/. Abra el registro y verifíquelo.
compiler.automake.how.whal.app.runningcompiler.automake. allow.when.app.running
A través de la configuración anterior, puede cargar HTML sin reiniciar el servicio, pero si modifica el archivo Java, el servicio se reiniciará automáticamente en unos segundos. Si no desea que el servicio se reinicie, debe agregar spring.devtools.reatart.enable = false en application.properties o Application.yml.
Resumir
Lo anterior es la implementación en caliente de Spring Boot Spring-Boot-Devtools que el editor le presentó. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!