- com.yyjz.icop.pubapp.platform.template.IRuleDispatcher<E>,实现该接口可以进行规则注入
public interface IRuleDispatcher<E> {
void addBeforeRule(IcopRule<E> rule);
void addAfterRule(IcopRule<E> rule);
void addExtraBeforeRule(IcopRule<E> rule);
void addExtraAfterRule(IcopRule<E> rule);
}
IRuleDispatcher继承结构如下,可以看到,通过CRUD接口均实现了该接口,删除(DeleteTemplate),插入(InserteTemplate),更新(UpdateTemplate)
- 实现com.yyjz.icop.pubapp.platform.rule.IcopRule<T>接口,自定义规则,接口定义如下:
public interface IcopRule<T> {
/**
* 对传入的对象进行业务处理
*
* @param vos 传入的要处理的对象
*/
void process(T[] entitys);
}
- 以新增DAO为例,展示怎么注入前置规则,示例代码注入审计信息处理前置规则和附件上传(需要配置服务)后置规则:
public class AwardInsertActivity {
@Autowired
private InsertTemplate<AwardEntity> insert;
/**
* 引入审计信息公共rule
*/
@Autowired
private AddAuditinfoRule<AwardEntity> addAuditinfoRule;
/**
* 引入附件公共rule
*/
@Autowired
private AddFsAttachRule<AwardEntity> addFsAttachRule;
public AwardEntity insert(AwardEntity entity) {
insert.addBeforeRule(addAuditinfoRule);//注入前置规则
insert.addAfterRule(addFsAttachRule);//注入后置规则,需要配置附件上传dubbo服务
AwardEntity[] backEntity = insert.doAction(new AwardEntity[] { entity });
return backEntity[0];
}
}