Springboot build proyecto java

La construcción de un proyecto es inseparable de la arquitectura. Una buena arquitectura puede hacer que el desarrollo sea más efectivo. La tecnología es reemplazable y el pensamiento es lo mismo. Por lo tanto, en la carrera técnica futura, escuchará más sobre el núcleo de una determinada tecnología. Qué es el pensamiento y qué problemas se han abordado. Arriba, anímense unos a otros.

A medida que se desarrollan más y más proyectos, más y más se dan cuenta de la importancia de la construcción de proyectos. En circunstancias normales, el fondo debe proporcionar: (terminal móvil / página web) servicios de interfaz, servicios de interfaz de gestión en segundo plano y servicios de interfaz entre servicios , Cómo hacer que cada módulo se reutilice tanto como sea posible para reducir la duplicación de código.
En ese momento, alguien dijo: "Puse todos los servicios de interfaz en un proyecto, de modo que no importa si es servicio, clase de entidad, clase de herramienta, etc., se puede compartir, ¿no está bien?" En
este momento, se extendió una pregunta: Si el servicio de un canal se actualiza sin afectar a otros servicios de canal, ¿habrá problemas? Debido a que desea actualizar, este servicio debe suspenderse primero. Una vez descontinuado, otros canales también hacen referencia a este servicio, no estará disponible y el proyecto será cada vez más grande, el marco se escalonará y el costo de mantenimiento también aumentará. Alto, los recién llegados harán que sea difícil comenzar.

¿Cómo construir más apropiado?

No hay más adecuado, solo más adecuado, este artículo es solo una idea personal, si tiene una mejor manera, bienvenido a comentar

Selección de fotogramas

  • SpringBoot 2.3.5. LANZAMIENTO
  • Mybatis-plus 3.4.1
  • Knife4j 2.0.7
  • Lombok
  • Maven

Estructura del proyecto

template-server-v2 #父项目
- template-core #数据库对应的entity,mapper,service,serviceImpl
- template-common #工具类
- template-service #业务处理
- template-controller #接口

¿Cómo se asignan las responsabilidades del paquete del proyecto?

plantilla-común

descripción

Principalmente responsable de las herramientas de servicio de plantillas, como MD5, herramientas aes, algunas herramientas redis, etc., se colocarán aquí

plantilla-núcleo

descripción

Principalmente responsable del mapeo y adición, eliminación, modificación y verificación de las tablas de la base de datos correspondientes a las clases de entidad. Tenga en cuenta que no hay procesamiento comercial, solo clases generadas.
mysql pom.xml que se integra y mybatis-plus y druid, usando la generación de código mybatis-plus plug puede generar rápidamente un servicio de clase de entidad, y un mapeador, pero también de acuerdo con  plantillas personalizadas  para generar diferentes clases en diferentes posiciones
plantilla El núcleo es principalmente para operaciones CRUD para todo tipo de servicio de plantilla.

ventaja

  • Use mybatis-plus para generar el complemento, no es necesario instalar nada en la idea, puede generar rápidamente las clases de entidad y el crud correspondiente, menos el problema de la creación manual, puede modificar la configuración de generación o personalizar la plantilla
  • El paquete de proyecto de template-service hace referencia a template-core. Si los campos de la tabla de la base de datos se agregan o cambian, solo necesita modificar las entidades correspondientes en template-core

servicio de plantilla

descripción

Principalmente responsable de la operación completa del negocio. Generalmente, los servicios complejos se componen de CRUD en varias tablas, dado que se hace referencia a la plantilla-núcleo, los pares CRUD proporcionados se utilizan directamente para combinarlos y empalmarlos en servicios.
El procesamiento de transacciones también está aquí, y habrá un paquete de parámetros de interfaz Param y un paquete de resultados de capa visual VO en el servicio de plantilla: principalmente para la recepción de parámetros de interfaz del controlador y la devolución de resultados

ventaja

  • La separación de template-service permite hacer referencia a otros paquetes de proyectos de controlador y reduce la misma escritura de código. Por ejemplo: Por ejemplo, necesitamos construir un centro comercial, que tiene una versión para PC + versión APP + versión applet. Si el negocio es el mismo, solo El controlador y las reglas de verificación son diferentes. En este momento, los beneficios de la abstinencia

controlador de plantilla

descripción

Principalmente responsable del suministro de interfaces, visualización de documentos de swagger, manejo de excepciones globales, devolución de conjuntos de resultados, almacenamiento de registros de solicitudes, permisos de interfaz y otras operaciones de procesamiento de interfaz relacionadas. Aquí no se procesan negocios y los parámetros se reciben y reenvían al servicio.
Si hay una interfaz de aplicación, una interfaz de administración de backend, una interfaz de PC y una interfaz de applet, entonces el controlador de plantilla corresponderá a 4 proyectos, que pueden ser controlador de plantilla app, template-controller-applets, template-controller-back, template-controller-pc, lo
mismo es: hacer referencia al paquete de función de servicio de plantilla requerido; la diferencia es: verificación de interfaz, método de inicio de sesión, documentación de interfaz, registros de registro, etc. . . .

ventaja

  • La separación de las diferentes interfaces de canal permite que no se afecten entre sí, independientemente de si están actualizando o interrumpiendo los servicios, porque tendrán múltiples paquetes de proyectos de controlador.
  • Separación del marco. Por ejemplo, usé Spring Security antes de administrar el backend. Si lo uso más tarde, cambiaré a Shiro. Solo necesito modificar el paquete del proyecto template-controller-back. No tiene nada que ver con otros. Simplemente colapsa el tuyo. Nada mal
  • El mantenimiento es mayor. Los recién llegados deben familiarizarse con la interfaz de administración de backend. Solo deben prestar atención a un único paquete de proyecto de plantilla, controlador y respaldo. No todas las interfaces estarán abarrotadas. Los recién llegados tienen un dolor de cabeza y también están obsesionados con su mantenimiento.
  • La escalabilidad es mejor. Si la aplicación template-controller-app necesita cargarse, hará un procesamiento de servicio de un solo paquete de ingeniería y los demás no afectarán.

Código fuente del proyecto

Haga clic para ir a la nube de código

 

Supongo que te gusta

Origin blog.csdn.net/itjavaee/article/details/109948857
Recomendado
Clasificación