spago框架的灵活性在于它可插拔的配置文件。
在spagobiProject工程的/SpagoBIProject/web-content/WEB-INF/conf目录下,分模块滴放着各类配置文件,每个模块一般配置是如下的:
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/actions.xml
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/business_map.xml
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/documentBrowser.xml
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/modules.xml
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/pages.xml
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/presentation.xml
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/publishers.xml
/SpagoBIProject/web-content/WEB-INF/conf/analiticalmodel/validation.xml
在analiticalmodel目录下,有上面的xml文件,其中presentation.xml中,如果是business_type="ACTION",则该配置文件相当于actions.xml和publishers.xml的中间关联配置,根据action的NAME,可以通过在presentation.xml找到对应的逻辑页面名,并根据这个逻辑页面名在publishers.xml中找到接收action处理结果的页面及配置参数;
<MAPPING business_type="ACTION" business_name="EXECUTE_DOCUMENT_ACTION" publisher_name="ExecuteDocumentPublisher"/>
在presentation.xml中如果 business_type="PAGE" ,
<MAPPING business_name="ReportsLookupPage" business_type="PAGE" publisher_name="ReportsLookupPublisher"/>
则business_name(也就是url中包含PAGENAME=XXX)对应的是pages.xml中的name,同时在business_map.xml中配置了该page的处理类moduleName,该类的实现类配置在modules.xml中。pages.xml中的name中配置了DEPENDENCE依赖配置,该依赖则在business_map.xml和modules.xml也配置的有。
publishers.xml配置的page
而business_map.xml则配置了两类信息,一个是action的,一个是page的,这里action配置了某一个action所属的业务流程(eg:FunctionalitiesManagement),然而并非所有的action都要在这里做映射配置;