Aprenda a crear proyectos de agregación de Maven, SpringBoot y use SLF4j para imprimir registros (1)

1. Preparación del proyecto: aprenda a crear un proyecto de agregación Maven

1.1. Crear un proyecto agregado

Primero cree un proyecto Maven normal:

Inserte la descripción de la imagen aquí

Luego, complete el nombre del proyecto y la identificación de la organización:

Inserte la descripción de la imagen aquí
Cuando el proyecto se crea correctamente, pom.xml se abrirá de forma predeterminada y la configuración se agregará al archivo:

<packaging>pom</packaging>

P.ej:

Inserte la descripción de la imagen aquí

Una vez finalizado, el proyecto se considera como el proyecto principal y no se puede procesar por el momento. A continuación, haga clic con el botón derecho en el nombre del proyecto principal y luego cree el proyecto secundario. El comando de menú creado es New> Module:

Inserte la descripción de la imagen aquí

Al crear un proyecto de módulo, aún seleccione el proyecto Maven. En la interfaz de configuración detallada, necesita:

  • Determinar el proyecto principal;
  • Nombre personalizado, se recomienda utilizar "nombre del proyecto principal-" como prefijo;
  • Complete el GroupId;
  • Verifique la ubicación.

P.ej:

Inserte la descripción de la imagen aquí
Cuando se crea el submódulo, puede ver el proyecto del submódulo en el panel de gestión de proyectos a la izquierda:

Inserte la descripción de la imagen aquí

Y, el nodo se ha agregado automáticamente en el pom.xml del proyecto principal <modules>y se ha configurado el proyecto del submódulo:

Inserte la descripción de la imagen aquí

El proyecto del submódulo también tiene su propio pom.xml independiente , puede ver que el proyecto principal se ha configurado:

Inserte la descripción de la imagen aquí

Luego, use los mismos pasos para crear el segundo proyecto de submódulo shop-order:

Inserte la descripción de la imagen aquí

1.2. A través de la configuración del proyecto principal, cada proyecto de submódulo puede usar la misma dependencia

Agregue las dependencias y la configuración relacionada en el pom.xml del proyecto principal :

Inserte la descripción de la imagen aquí
Entonces, cada proyecto de submódulo no necesita agregar junitdependencias, pero se puede usar directamente junitpara pruebas unitarias:

Inserte la descripción de la imagen aquí

1.3. Configurar dependencias opcionales para proyectos secundarios en el proyecto principal

Si algunas dependencias son solo parte del proyecto del submódulo que se debe usar, y no es necesario usar otros proyectos del submódulo, para facilitar la administración unificada general, se debe configurar a través del nodo en el pom.xml del proyecto principal <dependencyManagement>y usar la dependencia de la configuración del nodo. , Los subproyectos no se pueden utilizar directamente:

Inserte la descripción de la imagen aquí
Si intenta utilizar la clase dependiente directamente en el subproyecto, se producirá un error:

Inserte la descripción de la imagen aquí

Suponga que el proyecto del submódulo de pedido de la tienda necesita usar dependencias de MySQL, y la dependencia debe agregarse en el pom.xml del proyecto del submódulo . Sin embargo, al agregar dependencias, no es necesario que especifique la versión:

Inserte la descripción de la imagen aquí
Luego, actualice Maven (haga clic en el botón de actualización) y pruebe nuevamente:

Inserte la descripción de la imagen aquí

En este punto, el subproyecto puede usar dependencias de MySQL.

Con este enfoque, no es necesario que los subproyectos administren las versiones dependientes, ¡toda la administración de versiones se puede concentrar en el proyecto principal! Por supuesto, si el subproyecto debe usar otras versiones, también puede agregar <version>nodos para especificar.

Además, en los pasos de operación anteriores, el proyecto del submódulo shop-user no agrega una dependencia en MySQL, por lo que cuando se ejecuta la misma prueba, ¡definitivamente ocurrirá un error!

2. Preparación preliminar del proyecto: aprenda a crear un proyecto de agregación SpringBoot

2.1. Crear proyecto padre

Primero cree el proyecto principal, selecciónelo Spring Initializren el lado izquierdo del primer panel del proyecto creado , confirme las URL disponibles en el lado derecho y haga clic en Aceptar:

Inserte la descripción de la imagen aquí

En la segunda interfaz, complete Grupo y Artefacto , seleccione Escribir como Maven POM, otras opciones no requieren modificación, solo confírmelo directamente:

Inserte la descripción de la imagen aquí

En la tercera interfaz, puede elegir depender. Debido a que este proyecto principal no está seguro de qué dependencias deben usarse por el momento, puede desmarcarlo primero y agregarlo usted mismo más tarde.

En la cuarta interfaz, es principalmente para determinar si la ubicación donde se almacena el archivo del proyecto es correcta. Después de que todo esté correcto, ¡el proceso de creación se completa!

2.2. Crear subproyecto

Haga clic con el botón derecho en el proyecto principal, seleccione New> Moduley aún así seleccione Spring Initializren la primera interfaz de creación de un proyecto de submódulo . En la segunda interfaz, determine la información del proyecto de submódulo. Cabe señalar que cuando hay una disminución en el valor de artefacto del proyecto de submódulo El valor predeterminado del paquete es conectar directamente los nombres a ambos lados del signo menos. Se recomienda agregar un punto decimal para separarlo:

Inserte la descripción de la imagen aquí

En la tercera interfaz, verifique las dependencias según sea necesario. Si desea que este subproyecto se implemente en Tomcat, puede verificar las Spring Webdependencias (cada dependencia también se puede agregar después de que la creación sea exitosa):

Inserte la descripción de la imagen aquí

En la cuarta interfaz, si no hay problema, la creación se completa directamente.

Una vez completada la creación, puede ver en el archivo pom.xml del proyecto del submódulo que su proyecto principal sigue siendo el proyecto SpringBoot en lugar del proyecto de blog creado antes :

Inserte la descripción de la imagen aquí

Debe cambiar el proyecto principal aquí al proyecto del blog (abra el archivo pom.xml del proyecto principal y busque la información relevante y cópiela y péguela en el proyecto del submódulo):

Inserte la descripción de la imagen aquí

Al mismo tiempo, los <modules>nodos no se agregan automáticamente en el proyecto principal para configurar el proyecto del submódulo y deben agregarse manualmente (además, los <dependencies>nodos y los <build>nodos no son necesarios en el proyecto principal en este momento , y puede eliminarlos usted mismo):

Inserte la descripción de la imagen aquí

Una vez completado todo, utilice el mismo método de operación para crear otro comentario de blog del proyecto de submódulo .

Cabe señalar que dado que los dos proyectos de submódulos se pueden ejecutar directamente, cuando Spring Webse agregan dependencias, Tomcat se puede iniciar directamente y los 8080puertos están ocupados por defecto . Por lo tanto, para evitar conflictos, estos proyectos de submódulos deben ser explícitamente ¡El puerto se cambia a uno diferente!

3. Utilice SLF4j para imprimir registros

El uso de SLF4j puede personalizar el registro de salida, similar a usar la System.out.println()salida de algún contenido, la ventaja de usar SLF4j es que la eficiencia de ejecución es alta y el nivel de registro se puede personalizar para que el registro se pueda filtrar (de modo que el registro de nivel inferior no se muestre ).

Al usar SLF4j, se recomienda lombokusarlo juntos. lombokLa dependencia debe agregarse primero . Dado que esta dependencia se puede usar en varios proyectos de submódulos, puede agregar directamente esta dependencia al proyecto principal:

Inserte la descripción de la imagen aquí

A continuación, puede probar y usar SLF4j en cualquier proyecto de submódulo:
Inserte la descripción de la imagen aquí

En SLF4j, los niveles de registro de menor a mayor son:

  • TRACE: información de seguimiento;
  • DEBUG: depuración;
  • INFO: información general;
  • ADVERTENCIA: Advertencia, generalmente causada por la mala calidad del código, como el uso de una API declarada como desactualizada o el objeto de flujo no está cerrado, etc .;
  • ERROR: Error, generalmente no hará que el proyecto se bloquee;
  • FATAL: error fatal, hará que el proyecto se bloquee;
  • APAGADO: apaga la salida de todos los registros.

El nivel de salida del registro se puede configurar en la aplicación.propiedades del proyecto :

logging.level.cn.tedu.blog.user=trace

La información de configuración anterior indica el nivel de registro de configuración ( logging.level), y el cn.tedu.blog.userpaquete está configurado , lo que significa que después de las clases en este paquete y todos sus descendientes en los registros de salida del proyecto actual, se tracemuestran de acuerdo con el nivel, tracey los registros en y niveles superiores serán ¡monitor!

En la información de configuración anterior, también se puede agregar un nombre de clase a la derecha del nombre del paquete, lo que indica que solo se configura el nivel de visualización del registro de una determinada clase.

Cuando se establece en el tracenivel, los registros de cada nivel se pueden generar y mostrar. Por lo general, en la etapa de desarrollo, puede establecerlo directamente en el tracenivel. Además, durante el desarrollo, debe distinguir loglos métodos utilizados, y la información más confidencial se debe debuggenerar mediante métodos. , Cuando el proyecto se completa y necesita implementarse en el servidor, se recomienda configurarlo en warn(Advertencia) o superior, entonces los registros de nivel inferior no se mostrarán durante el funcionamiento del servidor oficial.

Al llamar a logcada método, el contenido de salida se puede usar {}como marcador de posición (no hay contenido entre corchetes) y luego usar parámetros variables para agregar el valor correspondiente al marcador de posición, por ejemplo:

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_44273429/article/details/107414745
Recomendado
Clasificación