创建应用平台

(1)创建macula-samples平台

使用脚手架构创建macula-samples应用平台,如下所示:

mvn archetype:generate \
    -DgroupId=dev.macula.samples	\	# 你的应用的GroupID
    -DartifactId=macula-samples	\	# 你的应用的ArtifactId
    -Dversion=1.0.0-SNAPSHOT \		# 你的应用的版本号
    -DarchetypeArtifactId=macula-boot-archetype \ 
    -DarchetypeGroupId=dev.macula.boot \
    -DarchetypeVersion=5.0.6 \
    -Dgitignore=.gitignore -DinteractiveMode=false

或者使用git clone拉取sample相关代码

## samples代码
git clone https://github.com/macula-projects/macula-samples.git

说明:应用平台的项目结构、应用分层以及项目分包,框架规约中已经说明,不再赘述。

(2)应用平台接入Macula平台

macula-samples应用平台要复用Macula平台的认证服务、系统服务等能力,需要接入Macula平台,成为其中的一个租户。接入涉及的步骤如下:

  • Macula平台管理员登录MaculaCloudAdmin管理后台,创建租户(macula-samples应用平台)以及对应的租户管理员

  • macula-samples租户管理员登录MaculaCloudAdmin管理后台,创建当前租户下的应用、菜单、角色,获取ak和sk(macula-samples-admin-bff应用对应的ak/sk)

  • macula-samples租户管理员登录MaculaCloudAdmin管理后台,创建接入Macula平台认证服务所需的client客户端,获取client_id和client_secret

(3)运行macula-samples平台

(平台本地运行需要修改的配置,都需要明确标注说明,如数据库、缓存、注册中心、配置中心、消息队列等【文字+截图】)

  • 修改macula-samples-admin-bff的配置文件,配置macula cloud的网关地址和ak/sk
macula:
  cloud:
    endpoint: http://127.0.0.1:9000    # macula cloud网关地址
    app-key: ${spring.application.name}
    secret-key: 待修改
  • 修改macula-samples-admin登录配置文件,配置client_id/client_secret

    macula-samples-admin/src/views/common/login/components/passwordForm.vue

var data = {
  username: this.form.user,
  password: this.form.password,
  grant_type: 'password',
  client_id: '待修改',
  client_secret: '待修改',
  scope: 'message.read message.write userinfo'
}
  • 修改macula-samples-admin项目菜单的隐藏逻辑,macula-samples-admin/src/layout/index.vue
//处理隐藏
if (!item.meta.visible || item.meta.type == "BUTTON") {
  return false
}
改为
//处理隐藏
if (item.meta.hidden || item.meta.type == "BUTTON") {
  return false
}
  • 修改macula-samples-admin项目认证中心地址,.env.{环境变量}
VITE_APP_IAM_URL=http://localhost:9010
改为:
VITE_APP_IAM_URL=iam认证服务的真实地址(默认使用macula-cloud-iam项目的启动则为http://localhost:9010)
  • 修改macula-samples-gateway项目共享redis和introspection接口地址:
spring:
  redis: # 网关自己的redis配置
    database: 0
    host: 127.0.0.1
    port: 6379
    system: # macula-cloud的system模块的redis配置
      database: 0
      host: 127.0.0.1
      port: 6379
  security:
    oauth2:
      resourceserver:
        opaquetoken:
          client-id: ***** ##(iam认证服务的客户端id,可看sys_oauth2_client表的client_id字段)
          client-secret: ***** ##(iam认证服务的客户端密码,可看sys_oauth2_client表的client_secret字段)
          introspection-uri: ## iam认证服务的token认证角色真实地址(默认使用macula-cloud-iam项目的启动则为http://localhost:9010/oauth2/introspect)
  • 初始化数据库表

    找到macula-samples-service1/docs/macula-samples-service1.sql,创建数据库,导入SQL创建示例表

  • 分别启动macula-samples-admin、macula-samples-gateway、macula-samples-admin-bff、macula-samples-service1,成功运行效果参考以下集成测试章节。