BizModel的每个操作函数和Loader函数都会被封装为IServiceAction接口。
public interface IServiceAction { Object invoke(Object request, FieldSelectionBean selection, IServiceContext context); } ````
* request是传递给action的请求数据,一般情况下是Map结构,也可以是对应的强类型的RequestBean * selection是前台发送过来的字段选择机制 * context是服务调用上下文环境对象,通过它可以获取IUserContext等 * 返回值就是BizModel中服务方法的返回值,可能同步可能异步。
## 注册Decorator
1. 仿照CacheActionDecoratorCollector实现IActionDecoratorCollector接口 2. 在beans.xml中注册actionDecoratorCollector。**注意:注册的Bean必须是IActionDecoratorCollector接口而不是IServiceActionDecorator接口** 3. BizObjectManager启动的时候会自动搜集IoC容器中注册的decoratorCollector,然后用于生成actionDecorator
```java public interface IServiceActionDecorator extends IOrdered { IServiceAction decorate(IServiceAction action); }
|
- ServiceActionDecorator在初始化的时候会作用于serviceAction,从而构建得到一个装饰后的IServiceAction
- decorator具有优先级顺序设置,在应用之前会按照优先级排队,order值小的排在前面。