潤乾報表設計器中使用 spring 框架實現自定義資料集
spring是一個開源框架,是為了解決企業應用程式開發複雜性而建立的。在 web 開發環境中經常會與 struts、hibernate聯合起來使用,進行規範的框架結構開發。潤乾中的二次開發也可以與 SSH 框架相結合部署到 web 專案中。本文介紹在設計時沒有啟動 web 服務,在設計器中使用 spring 的方式來實現自定義資料集。
實現思路:編寫兩個自定義資料集,一個在設計器中使用,一個在 web 專案中使用,在設計器中使用的類需要編寫臨時載入 spring 框架配置檔案的程式碼,啟動 spring 框架。Web 專案中的則不需要編寫,可直接與 struts 整合,透過監聽器的方式啟動 struts 框架時同時啟動 spring 框架。
第一步:複製 spring 框架 jar 包。
使用 spring 的注入方式編寫一個簡單的自定義資料集,首先需要將 spring 的 IOC 核心容器和對 web 支援的 jar 包複製到設計器的 lib 目錄下(\reportHome\designer\web\WEB-INF\lib)。
第二步:編寫一個簡單的自定義資料集。
public class Test { public DataSet getDataSet(Context ctx, DataSetConfig dsc, boolean retrieve) { DataSet ds = new DataSet(”ds1″);// 定義資料集名稱 ds.addCol(”產品ID”);//定義顯示列 ds.addCol(”產品名稱”); List col1 = new ArrayList();// 第一列模擬資料集合 for (int i = 1; i <= 4; i++) { col1.add(i); } List col2 = new ArrayList();// 第二列模擬資料集合 col2.add(”struts1.2″); col2.add(”hibernate3.1″); col2.add(”spring2.0″); col2.add(”runqian4.2.5″); // 設定資料 for (int i = 0; i < col1.size(); i++) { Row row = ds.addRow(); row.setData(1, col1.get(i));// 產品ID放到第一列的位置 row.setData(2, col2.get(i));// 產品名稱放到第二列的位置 } return ds; } }
第三步:進行 spring 注入。
將之前編寫的自定義資料集的類,透過 spring 注入的形式來實現,將 spring 的配置檔案 applicationContext.xml 放置在 classpath 中(也就是設計器中的 \reportHome\designer\web\WEB-INF\classes 目錄下)。使用 ApplicationContext 這個介面下的一個實現類 ClassPathXmlApplicationContext 來載入配置檔案,需要注意的是,這裡可以載入多個配置檔案,所以是以陣列形勢傳進的。在 applicationContext.xml 中新增節點,配置 spring 注入的程式碼,在類中使用 getBean() 方法,根據 xml 中 bean 節點的 id 屬性注入。返回的就是該類中定義的這個成員變數了,從而實現了 spring 注入功能。
Spring 配置檔案 applicationContext.xml 程式碼如下:
<?xml version=”1.0″ encoding=”UTF-8″?> < beans xmlns=”” xmlns:xsi=”” xsi:schemaLocation=” /spring-beans-2.0.xsd”> <bean id=”Test” class=” com.runqian.Test”></bean> < bean id=”SpringTest” class=”com.runqian.SpringTest “> < property name=”test”> < ref bean=”Test” /> < /property> < /bean> < /beans><?xml version=”1.0″ encoding=”UTF-8″?>
Spring 呼叫類程式碼如下:
public class SpringTest implements IDataSetFactory { private Test test; public SpringTest () { } public void setTest(Test test) { this.test = test; } public DataSet createDataSet(Context ctx, DataSetConfig dsc, boolean retrieve) { ApplicationContext cxt = new ClassPathXmlApplicationContext( new String\[\] { “applicationContext.xml” });//手動載入配置檔案 test = (Test) cxt.getBean(”Test”);//載入之前定義好的自定義資料集類 return test.getDataSet(ctx, dsc, retrieve); } }
將之前編寫的自定義資料集和 spring 呼叫類編譯後,把.class 檔案放到設計器中的 \reportHome\designer\web\WEB-INF\classes 目錄下 (主意加上包檔案)
第四步:啟動設計器實現自定義資料集。
開啟設計器,選擇自定義資料集,填入 spring 呼叫類的包名和類名
顯示出之前類中定義的列名,生成資料整合功
這樣就實現了不啟動 web 服務,在設計器中使用 spring 框架實現自定義資料集了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2683798/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 潤乾報表實現中間資料外接
- 潤乾報表中進度條的一種實現方式
- Spring Security 實戰乾貨:實現自定義退出登入Spring
- Spring自定義引數解析器設計Spring
- Spring Data JPA框架的Repository自定義實現詳解Spring框架
- 設計模式(三十一)----綜合應用-自定義Spring框架-自定義Spring IOC-定義解析器、IOC容器相關類設計模式Spring框架
- PyTorch 自定義資料集PyTorch
- Laravel 中自定義使用者登入的資料表Laravel
- 自定義表單 動態表單 表單設計器 流程引擎 設計方案
- 潤乾報表試用指南
- 設計模式(三十)----綜合應用-自定義Spring框架-自定義Spring IOC-定義bean、登錄檔相關類設計模式Spring框架Bean
- Spring Cloud Gateway 實現簡單自定義過濾器SpringCloudGateway過濾器
- Spring Security 實戰乾貨:玩轉自定義登入Spring
- java 自定義表單設計方案Java
- qt設計器中使用自定義控制元件QT控制元件
- 實現報表資料預先計算
- 使用client-go實現自定義控制器clientGo
- 後設資料管理—動態表單設計器在crudapi系統中完整實現API
- Spring Boot實現資料訪問計數器Spring Boot
- Java設計模式-17、直譯器模式-自定義語言的實現Java設計模式
- Spring 定時器的使用—Xml、Annotation、自定義Spring定時器XML
- Spring 定時器的使用---Xml、Annotation、自定義Spring定時器XML
- 聊聊自定義SPI如何使用自定義標籤注入到spring容器中Spring
- k8s自定義controller設計與實現K8SController
- 設計模式(二十九)----綜合應用-自定義Spring框架-Spring IOC相關介面分析設計模式Spring框架
- Spring Boot之Validation自定義實現總結Spring Boot
- 實現MyBatisPlus自定義sql注入器MyBatisSQL
- 如何使用SAP的後設資料框架 (MDF) 構建自定義業務規則?框架
- Spring 原始碼(4)在Spring配置檔案中自定義標籤如何實現?Spring原始碼
- LR.net使用者友好型自定義表單設計
- 自定義物件池在 Caffeine 框架中實踐物件框架
- 【乾貨】遊戲介面設計 (五)表現設計遊戲
- Spring Boot中使用JPA呼叫自定義的資料庫函式Spring Boot資料庫函式
- Spring Boot使用@Async實現非同步呼叫:自定義執行緒池Spring Boot非同步執行緒
- 前端使用 Konva 實現視覺化設計器(15)- 自定義連線點、連線最佳化前端視覺化
- Spring Boot中自定義註解+AOP實現主備庫切換Spring Boot
- 帶你自定義實現Spring事件驅動模型Spring事件模型
- 自定義元件-資料監聽器元件