`
dragonxiangfu
  • 浏览: 156066 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ADF BC中AM, EO, VO的初始化顺序

 
阅读更多

1, 测试代码介绍

基于HR Schema,创建Employees、Departments表的EO、VO对象。


2, 创建DepartmentEO,DepartmentVO, EmployeeEO, EmployeeVO的定义类和对象类。



3,在类中添加输出信息

例如:

  1. publicAppModuleImpl(){
  2. System.out.println("createapplicationmoduleinstanceimpliment...");
  3. }


4, 运行业务组件浏览器

得到测试结果如下:

create applicaton moduledefination...

create application moduleinstance impliment...

employee VO defination...

employee eo defination ...

employee VO instance ...

department VO defination

department EO impliment

department VO impliment


5, 修改ViewUsage顺序,再次测试

不同VO的初始化顺序不会和AM实现类中的getXXXVO顺序一致,而是与AM的XML定义中的‘ViewUsage’的定义顺序一致。

create applicaton moduledefination...

create application moduleinstance impliment...

department VO defination

department EO impliment

department VO impliment

employee VO defination...

employee eo defination ...

employee VO impliment ...





6, 运行页面

1)保持EmployeeVO的使用早于DepartmentVO的使用的情况下,运行Departments.jspx页面。结果如下。

createapplicaton module defination impliment...

createapplication module instance impliment...

employeeVO defination...

employeeeo defination ...

employeeVO impliment ...

departmentVO defination

departmentEO impliment

departmentVO impliment

… …

2)接着运行Employees.jspx页面:

create application module instanceimpliment...

employee VO impliment ...

department VO impliment

employee EO instance ...

employee EO instance ...

employee EO instance ...

… …

3)等待页面超时,Session无效后再打开,此时AM实例没有超时:

employee VO impliment ...

department VO impliment

employee EO instance ...

employee EO instance ...

employee EO instance ...

… …


4)在AM超时后:

<StateManagerImpl><restoreView>无法为标记 etzaygn6g 找到保存的视图状态

employee VO impliment ...

department VO impliment

employee EO instance ...

employee EO instance ...

employee EO instance ...

… …


7, 总结

1) 在第一次打开ADF页面的时候,初始化AM、EO、VO的定义;顺序是AM,VO,EO。

2) VO对象类的初始化晚于EO的定义,晚于VO的定义。

3) EO对象类对应的是table中的一行数据,所以log中打印出多行EO对象类的初始化。并且,EO对象类的初始化晚于VO对象类的初始化。

4) 不同VO的初始化顺序定义在AppModule.xml文件中,同‘ViewUsage’的顺序。

5) 在页面Session失效后,再次打开页面,只进行了VO对象类的初始化。AM、EO、VO的定义类并没有重新初始化。

6) 默认,AM实例的time out时间是600s。AM超时后,AM、EO、VO的定义类也没有重新初始化,说明这些类的初始化只进行了一次,是在ADF应用部署完成后的首次访问。


8,测试代码下载

ADF BC 初始化顺序测试代码

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics