![](https://box.kancloud.cn/c278a792d147e52368f0e4d7a67907ad_244x206.png)
源于漩涡一族的超强力封印术,施术者按照“巳-亥-未-卯-戌-子-酉-午-巳’的顺序结印后双手合十便能召唤出死神,随后死神会用剑斩断目标的灵魂并将其吞噬于腹中,从而封印目标的灵魂,封印灵魂的大小随施术者决定。
一般修改功能有如下方案:
**继承覆盖重写**
优点:直接解决当前问题,不用太关心上层源码实现,不用侵入源码
缺点:需要提前知晓该拓展方式,增加额外的学习成本
**直接修改源码**
优点:灵活,扩展性更高,源码在手天下你有
缺点:侵入源码后续维护成本增加,后续版本不好更新,会造成冲突
在EOVA中,某些地方提供了拓展接口,比如业务AOP,自定义按钮,自定义控件等
但是预留的扩展口总有考虑不到的地方,或者说需求的变化性太多,谁也无法预料未来的所有!
所以下面推荐一种方案,当拓展口不够用之后,可以使用"尸鬼封尽"的办法来修改源码,修订功能!
例:我想覆盖Eova的 User.java,在用户对象上面添加"公司属性",用于方便进行业务:
`${user.companyId}`
想改的用户类:
`com.eova.model.User.java`
将User.java 复制到 `/override/com.eova.model.User.java`
![](https://box.kancloud.cn/0c3d36e165bad2fac6d223ed73144a5c_249x183.png)
> PS:`override`是一个新建的源码目录
然后啪啪一顿修改(在User里添加属性)
~~~
private int companyId;
public int getCompanyId() {
return companyId;
}
public void setCompanyId(int companyId) {
this.companyId = companyId;
}
~~~
重启服务,代码就生效了!
> 技能奥义:利用 class加载优先级,优先加载 classes 目录*.class,然后加载lib目录中的jar *.class**
提醒:点class文件查看源码发现乱码,请点此[寻找解决办法](http://note.youdao.com/share/?id=4aff23a584eb6b0723f6992c566cffce&type=note)
- 第一个10分钟
- 最新动态
- 序言
- EOVA介绍
- 新手入门
- 快速部署
- 奇技赢巧
- 元数据应该这样玩
- 个性化定制系统模块
- 前端常用代码
- 初级技能
- 仙人模式の表达式强化
- 月读の自动解析字典
- 多重连弹の下拉级联
- 色诱术の格式化单元格
- 木锭壁の前端校验
- 水龙弹の快速添加按钮
- 高级技能
- 感知之术の性能监控
- 替身术の配置自动覆盖
- 万花筒の图片服务
- 影子模仿术の数据导入
- 三重罗生门の个性化弹窗
- 沙之眼の虚拟字段
- 尸鬼封尽の覆盖源码
- 砂暴送葬の高级查询
- 创造再生の角色分级
- 影分身の代码生成
- 秽土转生の数据迁移
- 四赤阳阵の多表视图
- 六赤阳阵の多表级联
- 四象封印の数据过滤
- 象转之术の在线Office
- 影子操控术の全局控制
- 特别解释
- 关于源码
- 关于UI
- 关于浏览器兼容性
- 关于工作流引擎
- 关于Oracle
- 关于独立部署
- 关于版本号
- 关于分布式的支持
- 关于JAVA8的支持
- 常见问题
- 如何自定义数据源
- HelloWord