您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

夏天到了,用Java實現個可配置換膚功能

簡介夏季面板設定:{ “key”: “skin”, “value”: “Summer” }春節面板設定:{ “key”: “skin”, “value”: “SpringFestival” }最後本文是以夏天換膚

javaweb是什麼

夏天來了,是不是要給App換個夏天主題的面板呢?但是夏天過去後再換回預設面板難道還需要再重新發版麼。不需要的,下面來編寫個通用的配置項介面,可以做個讓運營可配置的APP換膚功能。只要切換引數值,就可以讓App換回原來的面板。

夏天到了,用Java實現個可配置換膚功能

介面設計

在設計介面前,需要考慮的是可能不只換膚需要頁面聯動變化,其他功能也需要,例如APP不同的版本,某個功能是否展示。這種通用的配置項,都可以使用一個介面返回。

所以考慮擴充套件性,使用自定義

key\value

方式傳值,和前端約定功能的key、value來設定APP展示效果就可以啦。

body

需要包含最基本的是引數的key、引數的value。 例如

{“key”:“skin”,“value”:“summer”}

資料庫設計

由於夏季換膚功能是保證可複用性,比如總會出的某項活動,不需要每次都要研發的功能,就可以找到原有的配置繼續使用。所以可將配置類儲存到資料庫表中,並且在後臺運營系統增加切換設定功能頁面。

DROP TABLE IF EXISTS app_config; CREATE TABLE app_config( ID VARCHAR(32) NOT NULL COMMENT ‘ID’ , KEY VARCHAR(255) COMMENT ‘配置標識’ , VALUE VARCHAR(255) COMMENT ‘配置值’ , CREATED_TIME DATETIME COMMENT ‘建立時間’ , UPDATED_BY VARCHAR(32) COMMENT ‘更新人’ , UPDATED_TIME DATETIME COMMENT ‘更新時間’ , CREATED_BY VARCHAR(255) COMMENT ‘建立人’ , REMARK VARCHAR(255) COMMENT ‘備註’ , PRIMARY KEY (ID) ) COMMENT = ‘App配置表’; 複製程式碼

邏輯程式碼

實體類

@ApiModel(value = “App配置表”,description = “”) @Table(name=“app_config”) public class AppConfig implements Serializable,Cloneable{ /** ID */ @Id @GeneratedValue @ApiModelProperty(name = “ID”,notes = “”) private String id ; /** 配置標識 */ @ApiModelProperty(name = “配置標識”,notes = “”) private String key ; /** 配置值 */ @ApiModelProperty(name = “配置值”,notes = “”) private String value ; /** 建立時間 */ @ApiModelProperty(name = “建立時間”,notes = “”) private Date createdTime ; /** 更新人 */ @ApiModelProperty(name = “更新人”,notes = “”) private String updatedBy ; /** 更新時間 */ @ApiModelProperty(name = “更新時間”,notes = “”) private Date updatedTime ; /** 建立人 */ @ApiModelProperty(name = “建立人”,notes = “”) private String createdBy ; /** 備註 */ @ApiModelProperty(name = “備註”,notes = “”) private String remark ; } 複製程式碼

jpa

新增

Repository

,用於獲取資料庫中App配置資訊。

public interface AppConfigRepository extends JpaRepository { } 複製程式碼

controller

編寫獲取配置資訊方法,一次性拿出全部配置,在前端取配置的

key

,根據具體業務處理接下來的換膚邏輯。

@GetMapping(“/config”) public AppConfigDTO getAppConfigs() { return appConfigRepository。findAll(); }

返回示例

獲取到不同的

value

,來切換App的面板設定,是放在後端可維護的全域性配置,列舉如下不同的設定。

夏季面板設定:

{ “key”: “skin”, “value”: “Summer” }

春節面板設定:

{ “key”: “skin”, “value”: “SpringFestival” }

最後

本文是以夏天換膚一個功能視角帶入的配置介面,很多App中可以使用通用配置的地方都可以按上面增加的這個配置類進行切換本身配置,讓我們的App更靈活,減少發版次數。

作者:斗笠小熊貓

連結:https://juejin。cn/post/7107552568850513957

Top