Skip to content

代码生成

我们在原java应用的代码生成器(点击进入)的基础上,新增了微服务代码生成的功能,支持生成基于底座的基础服务和业务微服务。基本的使用配置请参考单体版代码生成器使用说明(点击进入),微服务的具体使用差异如下:

项目基本信息

生成内容选项增加了微服务基础项目初始化微服务单项目初始化微服务基础项目初始化是用来生成网关服务、认证服务及系统管理服务等基础的微服务;微服务单项目初始化是用来生成业务微服务。

微服务的项目名称的注意事项:

注意

  • 微服务基础项目,会在项目名称的基础上加上gateway,auth,sys等后缀,例如项目名为demo-service,则网关项目名为demo-service-gateway;单独的业务微服务,项目名称与输入的保持一致。
  • 微服务基础项目,会在包名的基础上加上gateway,auth,sys等后缀,例如项目包名为cn.zjtele.demo,则网关的包名为cn.zjtele.demo.gateway;单独的业务微服务,包名与输入的保持一致。
  • 如果要保持业务微服务与基础微服务前缀的一只,生成基础微服务项目是,项目名称和包名铁血项目前缀即可。

数据库及表信息

添加数据库配置,该配置会写入到生成代码的配置文件中。这里需要明确的是,如果是进行微服务基础项目初始化,不用填写表配置信息,生成的代码中也不包含mapper、service等信息的;如果下拉框选择的是微服务单项目初始化,需要填写表配置信息,生成的代码中是会包含mapper、service等信息的

生成内容

选择微服务基础项目初始化时,生成的zip包内容为三个基础微服务;选择微服务单项目初始化时,生成的只有单个业务微服务。具体内容示例如下图:

配置修改

nacos配置修改

修改各个微服务下,resources/config-dev目录下的application.yml(dev为默认开发环境)中的nacos配置内容

yaml
spring:
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      username: nacos
      password: pwd
      discovery:
        namespace: dev
        group: demo
      config:
        group: demo
        prefix: ${pubinfo.application.name}
        namespace: dev
        file-extension: yaml

注意

按照nacos的官方推荐,我们使用namespace来进行环境的区分,使用group来进行应用的分组。

nacos在创建namespace时,如果不指定id的话,默认为uuid,可以将id指定为dev、pre或者prod等。

redis配置修改

微服务环境下,需要使用redis作为分布式缓存,需要修改各个微服务下,resources/config-dev目录下的application.yml(dev为默认开发环境)中的redis配置

yaml
spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: pwd
    database: 0

业务应用swagger修改

业务微服务在新增了相关接口后,需要修改resources/config目录下的application-sys-swagger.yml文件,增加相关文档扫描配置。

yaml
pubinfo:
  swagger:
    group:
      demo:
        name: xx服务接口
        title: xx服务
        enable: true
        paths: /testDemo/**
        packages-to-scan: cn.zjtele.pubinfo.demo.app.api
        headers: Authorization

系统管理相关feignclient接口

系统管理微服务相关的feignclient依赖坐标如下:

xml
<dependency>
    <groupId>cn.zjtele.pubinfo.cloud</groupId>
    <artifactId>cloud-sys-client</artifactId>
</dependency>

具体的client接口如下:

  • cn.zjtele.pubinfo.cloud.sys.dict.client.SysDictClient,字典查询client
  • cn.zjtele.pubinfo.cloud.sys.rbac.client.SysRbacUserOrgClient,用户组织信息查询client
  • cn.zjtele.pubinfo.cloud.sys.rbac.client.SysRbacSyncClient,rbac用户组织数据同步写入client
  • cn.zjtele.pubinfo.cloud.sys.rbac.client.SysRbacDataPermissionsClient,数据权限查下client