> ![](https://box.kancloud.cn/90c565cb7b7a6a822148857166011b57_277x211.png)
> 影子操控术可以同时控制多个敌对目标,控制目标后可以对目标做出各种指令.
在Eova的世界里是否也能拥有这样一种掌控全局的能力
是否能一次性搞定数据过滤,是否能一次性搞定各种字段的初始化赋值等.
#### 需求背景
1)复杂的业务系统,严谨的业务系统都有很多角色,很多数据,需要根据不同的业务进行角色和数据的权限过滤.
2)写了很多业务拦截器,每个业务拦截器里代码都差不多,都是干那几件事.
#### 功能解读
~~~
/**
* 全局Eova业务拦截器
* @author Jieven
*
*/
public class GlobalEovaIntercept extends EovaIntercept {
// -- > 命中 Grid,Tree,TreeGrid的查询,导出功能
@Override
public String filterQuery(EovaContext ec) throws Exception {
System.out.println("Query过滤");
// 可以通过元数据进行各种判定
// if (!ec.object.getCode().startsWith("eova_")) {
// return " and id < 999999 or id = 10086";
// }
return "";
}
// -- > 命中Find,Combo,ComboTree 的表达式条件过滤
@Override
public String filterExp(EovaContext ec) throws Exception {
System.out.println("Exp过滤");
// return " and id < 9999";
return "";
}
}
~~~
~~~
/**
* 公共元对象业务拦截器
* <pre>
* 使用场景:
* 全局业务 例:增删改查日志记录
* 高频字段统一处理 例:create_time update_time ...
* 其它更多高端玩法,请尽情的发挥想象吧!
* </pre>
*
* @author Jieven
*
*/
public class BaseMetaObjectIntercept extends MetaObjectIntercept {
@Override
public String updateBefore(AopContext ac) throws Exception {
System.out.println("公共元对象业务拦截器");
for (MetaField f : ac.object.getFields()) {
if (f.getEn().equals("update_time")) {
ac.record.set("update_time", new Date());
}
if (f.getEn().equals("user_id")) {
ac.record.set("user_id", ac.user.getInt("id"));
}
}
return null;
}
}
~~~
#### 如何配置?
~~~
// OSSConfig.java
@Override
public void configEova() {
/*
* 自定义Eova全局拦截器
* 全局的查询拦截,可快速集中解决系统的查询数据权限,严谨,高效!
*/
setEovaIntercept(new GlobalEovaIntercept());
/*
* 默认元对象业务拦截器:未配置元对象业务拦截器会默认命中此拦截器
* 自定义元对象拦截器时自行考虑是否需要继承默认拦截器
*/
setDefaultMetaObjectIntercept(new BaseMetaObjectIntercept());
}
~~~
#### 如何使用?
主要讲思路,不讲具体使用,大家请发挥自己的小宇宙想象,用好了绝对能省很多事.
1. 主要是提供一种全局掌控的能力
2. 可以做公共的逻辑
3. 可以做特征匹配
4. 可以简化冗余代码
5. 增强后续可维护性
6. 可以更专一的关注一个视角
7. 一次严谨的思考,全局受益
本技能将会在后续的项目实战视频教程中结合实际业务详细讲解,有兴趣可提前成为VIP用户,避免错过
[立即站队成为VIP](http://www.eova.cn/help)
- 第一个10分钟
- 最新动态
- 序言
- EOVA介绍
- 新手入门
- 快速部署
- 奇技赢巧
- 元数据应该这样玩
- 个性化定制系统模块
- 前端常用代码
- 初级技能
- 仙人模式の表达式强化
- 月读の自动解析字典
- 多重连弹の下拉级联
- 色诱术の格式化单元格
- 木锭壁の前端校验
- 水龙弹の快速添加按钮
- 高级技能
- 感知之术の性能监控
- 替身术の配置自动覆盖
- 万花筒の图片服务
- 影子模仿术の数据导入
- 三重罗生门の个性化弹窗
- 沙之眼の虚拟字段
- 尸鬼封尽の覆盖源码
- 砂暴送葬の高级查询
- 创造再生の角色分级
- 影分身の代码生成
- 秽土转生の数据迁移
- 四赤阳阵の多表视图
- 六赤阳阵の多表级联
- 四象封印の数据过滤
- 象转之术の在线Office
- 影子操控术の全局控制
- 特别解释
- 关于源码
- 关于UI
- 关于浏览器兼容性
- 关于工作流引擎
- 关于Oracle
- 关于独立部署
- 关于版本号
- 关于分布式的支持
- 关于JAVA8的支持
- 常见问题
- 如何自定义数据源
- HelloWord