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:
Luego, complete el nombre del proyecto y la identificación de la organización:
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:
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
:
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:
Cuando se crea el submódulo, puede ver el proyecto del submódulo en el panel de gestión de proyectos a la izquierda:
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:
El proyecto del submódulo también tiene su propio pom.xml independiente , puede ver que el proyecto principal se ha configurado:
Luego, use los mismos pasos para crear el segundo proyecto de submódulo shop-order
:
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 :
Entonces, cada proyecto de submódulo no necesita agregar junit
dependencias, pero se puede usar directamente junit
para pruebas unitarias:
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:
Si intenta utilizar la clase dependiente directamente en el subproyecto, se producirá un error:
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:
Luego, actualice Maven (haga clic en el botón de actualización) y pruebe nuevamente:
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 Initializr
en el lado izquierdo del primer panel del proyecto creado , confirme las URL disponibles en el lado derecho y haga clic en Aceptar:
En la segunda interfaz, complete Grupo y Artefacto , seleccione Escribir como Maven POM
, otras opciones no requieren modificación, solo confírmelo directamente:
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
> Module
y aún así seleccione Spring Initializr
en 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:
En la tercera interfaz, verifique las dependencias según sea necesario. Si desea que este subproyecto se implemente en Tomcat, puede verificar las Spring Web
dependencias (cada dependencia también se puede agregar después de que la creación sea exitosa):
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 :
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):
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):
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 Web
se agregan dependencias, Tomcat se puede iniciar directamente y los 8080
puertos 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 lombok
usarlo juntos. lombok
La 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:
A continuación, puede probar y usar SLF4j en cualquier proyecto de submódulo:
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.user
paquete 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 trace
muestran de acuerdo con el nivel, trace
y 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 trace
nivel, los registros de cada nivel se pueden generar y mostrar. Por lo general, en la etapa de desarrollo, puede establecerlo directamente en el trace
nivel. Además, durante el desarrollo, debe distinguir log
los métodos utilizados, y la información más confidencial se debe debug
generar 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 log
cada 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: