前面说到MainDesigner的main方法中通过ModuleContext来加载解析designer-startup.xml的。

下面详细说说具体过程。

1 ModuleContext位于fine-core.jar包下,com.fr.module.ModuleContext,看一下它的parseRoot方法

public static synchronized Module parseRoot(String var0) {assert StringUtils.isNotBlank(var0) && !var0.contains("..");var0 = "/com/fr/config/starter/" + var0;Module var1 = FineModuleParser.parse(var0);ModuleContext.ModuleAccessor.init(var1);return var1;}

这里看到实际的解析是由FineModuleParser来完成的。

2 com.fr.module.engine.build.FineModuleParser的parse方法:

 public static Module parse(String var0) {ModuleConfig var1 = ModuleConfigFactory.create().downParse(var0);return var1 == null ? null : ModuleBuilder.build(var1);}

可以看到将配置文件的内容封装到ModuleConfig对象中了。然后使用ModuleBuilder来build模块.

3 com.fr.module.engine.build.ModuleBuil

深入了解帆软报表系统的启动过程二相关推荐

  1. 深入了解帆软报表系统的启动过程-总结

    通过前面的介绍,我们知道了帆软报表启动时是通过加载designer-startup.xml配置文件,创建Activator,Module来完成帆软报表的功能. 帆软报表将功能分配到各种Activato ...

  2. 深入了解帆软报表系统的启动过程三

    sss现在介绍下Module,Activator,Context这三者的关联. 1 com.fr.module.Context,简单理解就是上下文.先看看它的源码 public abstract cl ...

  3. 深入了解帆软报表系统的启动过程一

    1 帆软报表的启动类为:com.fr.learn.Learner,它的main方法如下: public static void main(String[] args) {try {Class main ...

  4. 昇兴集团:搭建帆软报表系统,打破数据孤岛,工作效率提升5倍

    注:本文为帆软2021数据生产力大赛参赛案例,未经授权禁止转载. 1.企业简介 昇兴集团股份有限公司坐落于具有我国工业摇篮著称的福州马尾区.公司始创于1992年,自成立以来,始终用专业严谨的态度从事食 ...

  5. 简单梳理帆软报表即决策系统的登录步骤 一

    以帆软fineReport为例,它本质上是一个Web项目,自然少不了相关的servlet,filter等相关概念. 第一步:一个要求登录的请求当没有登录时,如果重定向到登录请求的. 帆软报表里的每个请 ...

  6. 若依前后端分离+帆软报表 快速建立网站及后台管理功能

    若依前后端分离+帆软报表 快速建立网站及后台管理功能 架构 1.后台管理:若依作为后台管理框架,使用它自带的用户,角色,组织架构管理模块,在此基础上通过代码生成功能二次开发增加业务模块:使用帆软报表快 ...

  7. 【FineReport】帆软报表平台的安装与连接 SAP HANA 数据库

    [FineReport]帆软报表平台的安装与连接 SAP HANA 数据库 1.下载帆软 2.安装软件 3.连接HANA 4.访问数据 1.下载帆软 (1)帆软最新版本软件下载地址:https://w ...

  8. finereport 格式化金额函数_帆软报表(finereport)常用函数

    帆软报表FineReport中数据连接之Websphere配置JNDI连接 以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接 ...

  9. 帆软报表调用python脚本_帆软报表(finereport)实现自动滚屏效果

    例如Demo:IOS平台年度数据报表. 展示内容丰富,一个页面中存在多个图表.内容,超出了浏览器窗口的大小导致内容展示不全. 为了能够预览这个报表的全部内容,可以使用JS滚屏效果来实现. 操作步骤: ...

最新文章

  1. Bootstrap树控件(Tree控件组件)使用经验分享
  2. 操作系统 课堂练习题01【15道 经典题目】
  3. linux下开发python爬虫_linux入门教程—开发常用命令
  4. 容器学习 之 容器的网络类型(十二)
  5. NULL、nil、Nil、NSNull的区别
  6. socket选项: SO_REUSEADDR, SO_RCVBUF, SO_SNDBUF
  7. 【2016年第1期】山东省农业大数据发展刍议
  8. 【题解】Luogu P5360 [SDOI2019]世界地图
  9. Vuex和普通全局对象
  10. 大数据_MapperReduce_Hbase相关面试题_补充说明---Hbase工作笔记0030
  11. matlab 命令打开ANSYS,matlab如何调用ansys
  12. QDir中mkdir和mkpath的区别
  13. vuetify-icon图标显示不正常
  14. win7上搭建ftp站点
  15. matlab kappa风险分析,我为什么反对在属性数据MSA中用Kappa分析(上) | 汽车质量管理笔记...
  16. 14、系统架构师指南 - 软件项目角色指南系列文章
  17. Modern PHP读书笔记一
  18. Win32的时间类型
  19. latext 开根号_LaTeX常用篇(二)---上下标/分式/根式/求和/连乘/极限/积分/希腊字母...
  20. 【智能制造】首钢智造的理论探索与实践

热门文章

  1. ssis 包配置组织程序_如何停止失控的SSIS程序包
  2. 在SQL Server中的数据库之间复制表的六种不同方法
  3. ssis组件_使用SSIS Hadoop组件连接到Apache Hive和Apache Pig
  4. 如何使用SQL Server配置管理器
  5. 查看端口占用情况lsof,并关闭对应进程kill
  6. react native在static中使用this方法
  7. Unity教程之-Unity Attribute的使用总结
  8. 开发落网电台windows phone 8应用的计划(10)-----收尾
  9. python知识点2--正则表达式【转载】
  10. bzoj3601 一个人的数论 (拉格朗日插值求系数)