= 平台扩展 == 添加自定义应用启动器 所谓应用启动器就是指当应用启动成功后需要进行的附加操作,例如系统初始化检查等,具体实现步骤如下: === 编写启动器类 [source,java] ---- package io.sc.platform.security.jpa.initializer; import io.sc.platform.core.initializer.ApplicationInitializer; import org.springframework.context.ApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; public class AdministratorRoleAndUserInitializer implements ApplicationInitializer { <1> private JdbcTemplate jdbcTemplate; @Override public void init(ApplicationContext applicationContext) { <2> this.jdbcTemplate =applicationContext.getBean(JdbcTemplate.class); } @Override public void execute() throws Exception { <3> } } ---- <1> 启动器类必须实现 ApplicationInitializer 接口 <2> 启动器初始化,由平台自动调用,并将 spring application context 作为参数传入 <3> 启动器初始化的具体操作 === 添加 SPI 服务实现文件 image::platform-extension/001.png[,80%] == 添加自定义安装项 所谓安装项就是指当应用启动安装程序后,安装程序向导中的某一步,具体实现步骤如下: === 编写安装项类 [source,java] ---- package io.sc.platform.security.jpa.installer; import io.sc.platform.installer.InstallerItem; import io.sc.platform.installer.InstallerProgress; import io.sc.platform.jdbc.service.DatasourceService; import org.springframework.context.ApplicationContext; import org.springframework.core.Ordered; import java.util.*; public class AdministratorInstallerItem implements InstallerItem { <1> @Override public int getOrder() { return 2000; } <2> @Override public String getTemplateLoaction() { return "io/sc/platform/security/jpa/view/installer_administrator.html"; } @Override public void install(Map config, InstallerProgress installerProgress, ApplicationContext applicationContext) throws Exception { ...... <3> } } ---- <1> 每个安装器都需要实现 InstallerItem 接口 <2> 返回安装器的顺序 <3> 具体安装时的操作 === 添加 SPI 服务实现文件 image::platform-extension/002.png[,80%] == Restful API 返回结果 === 格式 [source,json] ---- { "code" : 200, <1> "messageI18nKey" : "success", <2> "message" : "success", <3> "data" : { <4> } } ---- <1> 返回状态码, 不同于 http 状态码 <2> 消息多语言消息键 <3> 消息多语言消息 <4> 数据体 === 返回码说明 |=== | 代码 | 说明 | 示例 | 200 | 成功 | | 1001 | 数据验证错误 | |===