Compartilhamento de tecnologia

Guia para atualizar projetos de back-end SpringBoot existentes para a estrutura Yudao (yudao-cloud)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Guia para atualizar projetos de back-end SpringBoot existentes para a estrutura Yudao (yudao-cloud)



  1. Inicie a estrutura taro
    • extremidade traseira:Início rápido (projeto de back-end)
    • front-end:Início rápido (projeto de back-end)
    • Perceber:
      • Você deve baixar Redis e Nacaos. Existem tutoriais no início rápido do backend.

      • O comando para iniciar o nacos está errado no tutorial. Se o nacos não estiver implementado em um cluster, use o comando a seguir para iniciá-lo.

        startup.cmd -m standalone
        
        • 1
  2. Aprenda a criar um novo serviço (depois de aprender a criar um novo serviço, você pode migrar negócios antigos)
    • Tutorial:Criar novo serviço

      Encontrei vários problemas no tutorial. Alguns dos motivos foram encontrados e alguns ainda não foram encontrados. No entanto, isso não afeta o acompanhamento. É apenas uma necessidade de compreensão, o que é útil para a compreensão geral. estrutura do projeto.

      • Solicitações de roteamento para pacotes diferentes são diferentes

        Isso envolve roteamento e encaminhamento de solicitação. Consulte aqui o método de implementação ->. Link de vídeo

      • Depois de iniciar o serviço de demonstração, o documento swagger não pode ser aberto usando o knife4j e um erro é relatado (não resolvido, mas não afetado)

        Erro de front-end

        Erro de back-end

      • Há um erro ao testar a interface de teste no tutorial

        Mesmo que a autorização e os inquilinos sejam simulados, a solicitação não pode ser concluída com base no arquivo yml fornecido anteriormente, portanto, um erro será retornado aqui.

        {
            "code": 401,
            "data": null,
            "msg": "账号未登录"
        }
        
        • 1
        • 2
        • 3
        • 4
        • 5
      • Depois de modificar o arquivo de configuração do gateway e adicionar a rota demo, o documento diz que as interfaces de teste admin e app podem ser testadas normalmente, mas observe: não funciona!

        Como o inquilino não foi fechado e o campo Autorização não foi adicionado, o resultado retornado ainda não é válido!

    • Modifique o arquivo de configuração yml em yudao-cloud
      • Roteamento e encaminhamento

        Modifique application.yaml no gateway (isso está incluído no tutorial para criar um novo serviço)

        adicionar àRegras de roteamento e encaminhamento, para que a solicitação seja encaminhada corretamente

        adicionar àregras de roteamento e encaminhamento do knife4j, para que você possa visualizar o documento swagger normalmente ([tutorial oficial do knive4j]

      • Fechar inquilinosMultilocatário SaaS [isolamento de campo]

        Modifique o application.yaml do biz no sistema

        Desligue o inquilino (se o seu projeto antigo não envolve inquilinos, meu entendimento atual é que cada microsserviço precisa modificar este local para desligar o inquilino, caso contrário, ele reportará "O ID do inquilino solicitado não foi aprovado, solucione o problema" este erro !)

        Primeiro, desative a função de locatário, mas isso não é suficiente. Você também precisa adicionar regras para ignorar URLs para ignorar todos os URLs! ! !

        Há outro campo que precisa ser alterado no front end (em .env). O nome do campo é diferente daquele no documento, portanto não pode ser encontrado usando a pesquisa global no documento.

      • Certificação de token

        VerificarPermissões de funçãoDocumente, modifique application-local.yaml de biz no sistema

        Teoricamente, você pode ativar o mecanismo de simulação de token e definir o prefixo do token do mecanismo de simulação de token, mas é inútil após a operação real.

    • Adicione os pacotes jar exigidos pela empresa ao projeto
      • Deve-se notar que ao adicionar pacotes jar, é fácil causar conflitos de dependência com a arquitetura maven original do Yudao (especialmente knive4j), e as dependências precisam ser excluídas.

        <dependency>
            <groupId>xx.xx.xx</groupId>
            <artifactId>xx-xx-spring-boot-starter</artifactId>
            <version>1.0.19</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-autoconfigure</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.github.xiaoymin</groupId>
                    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
    • Teste se o serviço recém-criado pode responder
      • Faça login e obtenha token para autenticação

      • Teste de aplicativo

      • testeadmin-teste

        Preste atenção à autenticação de autorização no cabeçalho da solicitação.

        Authorization:Bearer f4fb08efe73a4a98bb248da70f4cc514
        
        • 1