Explicación detallada del andamio spring initializr

Hace algún tiempo, en el artículo "Basado en start.spring.io, me di cuenta de la personalización del scaffolding de Java", describí el pasado y el presente del proceso de scaffolding de microservicios de nuestra empresa y mencioné la versión 2.0 del scaffolding basado en spring initializr. Hoy planeo compartir con ustedes el proceso de implementación y los detalles.El proyecto ha sido de código abierto en Github.

inicio-padre:https://github.com/studeyang/start-parent

estrella de bienvenida

1. Introducción a la estructura del proyecto

El proyecto se divide en tres partes: initializr, start-client y start-site.Las partes importantes se describen a continuación.

start-parent
  |- initializr                    代码生成
    |- initializr-actuator
    |- initializr-bom
    |- initializr-docs
    |- initializr-generator         生成基础工程代码
    |- initializr-generator-spring  生成 spring 工程代码
    |- initializr-generator-test    单元测试的封装
    |- initializr-generator-zebra   生成 zebra 分层架构
    |- initializr-metadata          工程元数据(pom 相关定义)
    |- initializr-parent
    |- initializr-service-sample
    |- initializr-version-resolver  版本解析
    |- initializr-web
  |- start-client                   脚手架前端
  |- start-site                     脚手架后端

He simplificado el diagrama de dependencia entre proyectos, como se muestra a continuación.

gráfico de dependencia

Después de comprender la situación general del proyecto, siga mi línea de pensamiento y construyan el proyecto juntos.

2. Integra Gitlab

Si desea utilizar la función "Crear proyecto" en el proyecto, debe configurar este paso. Aquí lo tomo gitlab.comcomo ejemplo para presentar cómo completar la integración con Gitlab.

Primero, debemos permitir que Gitlab confíe en nuestra aplicación para completar el salto de autorización de inicio de sesión posterior. Configure la aplicación de scaffolding en la plataforma Gitlab.

Agregar aplicaciones

Aquí configuré el URI de redirección del entorno de desarrollo local. Si necesita implementar en el servidor más adelante, debe configurar la dirección de back-end del servidor de andamios.

ID de aplicación

Una vez completada la configuración, Gitlab registra nuestra aplicación y asigna el ID y el secreto de la aplicación. Necesitamos configurar los valores de estos dos campos en el archivo start-site application.yml:

security:
  base-url: https://gitlab.com
  authorization-uri: ${
    
    security.base-url}/oauth/authorize
  token-uri: ${
    
    security.base-url}/oauth/token
  user-info-uri: ${
    
    security.base-url}/api/v4/user
  redirect-uri: http://127.0.0.1:8081/oauth/redirect
  client-id: gitlab client id
  client-secret: gitlab client secret
  admin:
    name: your gitlab admin username
    password: your gitlab admin password

Aquí presento brevemente los campos relevantes, autorización-uri, token-uri, usuario-info-uri. Estos tres campos son fijos y no es necesario configurarlos.

  • base-url: si usa gitlabel proyecto de administración, base-urlpuede configurarlo en la dirección que creó gitlab;
  • redirect-uri: la dirección de redirección después de la autenticación de gitlab, el backend se usa aquí para recibir la redirección, porque la redirección llevará parámetros de código, evitando la exposición al navegador y mejorando la seguridad;
  • client-id: ID de aplicación asignado por gitlab;
  • client-secret: Secreto asignado por gitlab;
  • admin.name: cuenta de gitlab, utilizada para crear un proyecto y enviar el código de proyecto inicial, se recomienda configurar una cuenta de administrador;
  • admin.password: contraseña de la cuenta de gitlab;

3. Agregar componentes

A continuación, agregue las dependencias de los componentes. Aquí tomo casslog-spring-boot-starterel paquete Jar como ejemplo, si el componente solo soporta algunas versiones de SpringBoot, puedes configurar el rango de compatibilidad, por ejemplo:

compatibility-range: "[1.4.2.RELEASE,1.5.7.RELEASE]"

La configuración completa es la siguiente.

initializr:
  dependencies:
    - name: 开源基础设施
      bom: kmw
      repository: my-rep
      content:
        - name: Casslog
          id: casslog
          groupId: io.github.studeyang
          artifactId: casslog-spring-boot-starter
          description: 日志工具类
          starter: true
          compatibility-range: "[1.4.2.RELEASE,1.5.7.RELEASE]"
          links:
            - rel: guide
              href: {
    
    用户手册}
              description: Example 快速开始
            - rel: reference
              href: {
    
    参考文档}

Configurar dependencias.

  • "nombre" El nombre de la categoría de dependencia del componente, por ejemplo: infraestructura de código abierto
  • biblioteca de administración de paquetes de dependencia "bom" en esta categoría
  • "repository" El repositorio de los paquetes dependientes bajo esta categoría
  • paquete de dependencia específico de "contenido"

Configurar contenido.

  • "nombre" depende del nombre del paquete
  • "id" depende del identificador único del paquete (usado en el código)
  • "groupId" depende del paquete groupId
  • "artifactId" depende del paquete artifactId
  • "descripción" depende de la descripción del paquete
  • Si "arranque" es spring-boot-starter
  • La versión Springboot de la que depende el "rango de compatibilidad"
  • Documentación para el componente "enlaces"

El diagrama de efectos configurado es el siguiente.

Los componentes agregan representaciones

4. Implementar la aplicación

A continuación, el andamiaje se puede implementar en el servidor.

Aquí hay un recordatorio, recuerde cambiar el redirect-uri de Gitlab a la dirección del servidor de scaffolding.

4.1 Paso 1: Empaquetado del proyecto

# 打包前端工程
cd {
    
    projectRoot}/start-client
sh ../mvnw install

# 打包 initializr 项目
cd {
    
    projectRoot}/initializr
sh ../mvnw clean install -Dmaven.test.skip=true

# 打包 start-site
cd {
    
    projectRoot}/start-site
sh ../mvnw clean install -Dmaven.test.skip=true

4.2 Paso 2: crear una imagen de Docker

cd {
    
    projectRoot}/start-site
docker build -t start-site:0.0.1 .

Solo ejecuta el espejo. El diagrama de efectos es el siguiente.

Interfaz principal de andamios

5. La postura correcta de uso de andamios

5.1 Administrar y utilizar documentos a través de HELP.md

El enlace del documento configurado en el proceso de "3. Adición de componentes" se mostrará en el archivo HELP.md, como se muestra a continuación:

AYUDA.md

5.2 Guardar/Compartir Proyecto

El proyecto que configuró se puede guardar a través de la función "Compartir...".

compartir

5.3 Usando andamios en IDEA

El proyecto se puede crear rápidamente en IDEA, solo es necesario configurar la dirección del servidor de andamios. Cabe señalar que la versión comunitaria de IDEA no tiene esta función.

IDEA

resumen

Este artículo le presenta el proceso de construcción del andamio Spring Initializr. Si encuentra problemas durante este proceso, puede enviar un PROBLEMA o dejar un mensaje en el fondo de la cuenta oficial "Notas técnicas de Student Yang".

Supongo que te gusta

Origin blog.csdn.net/yang237061644/article/details/128067907
Recomendado
Clasificación