java实现报表_修改带 JAVA 自定义类的报表还要重启应用,咋解决?
這是 JAVA 編譯型語言特性決定的,修改 JAVA 程序重啟應用也正常。只不過改報表就要重啟整個應用就有點夸張了,報表變動比較頻繁,每次都重啟應用會影響業務的。
這個問題的根本原因是耦合性問題,報表里一旦涉及到 JAVA 代碼就要跟主應用程序一起打包部署了,也就是耦合在一起,想要修改報表實時生效(熱切換)也就不可能了,所以解決這個問題的思路是解耦報表和主應用程序。
一般來說報表中使用 JAVA 編碼主要基于以下幾種原因:
1、數據計算涉及復雜過程和邏輯控制
為報表準備數據時涉及的計算過于復雜,或者需要做比較復雜的邏輯控制,通過 SQL 不易實現,只能通過 JAVA 硬編碼
2、涉及多樣性數據源
報表的數據來源多種多樣,當涉及 NoSQL、文本、XML、Hadoop、時序數據庫、Webservice 等數據源時,報表工具無法實現混合計算,需要用 JAVA 實現報表數據準備
3、方便應用擴展
未來業務增長需要對應用進行水平擴展(拆分),使用 SQL 不利于未來分庫,只能用 JAVA 實現報表數據計算
4、用于管理
為了管理需要,有時需要記錄報表訪問人、報表查詢次數、每次查詢了哪些數據等信息,通過 JAVA 編寫監聽類實現
這樣看來,要解耦報表模塊也不是很容易,最好直接使用具備這些能力的報表工具:
1. 很強的復雜計算能力,能完成較復雜的運算,還容易實現邏輯控制;
2. 多樣性數據源支持,最好還能混合計算,如 CSV 和 DB 做 join;
3. 計算不依賴數據庫,方便擴展
4. 支持熱切換,修改報表不用重啟應用
可以看一下 如何降低報表應用的耦合度 ,介紹了如何使用報表工具解耦報表和主應用,畫個圖感受一下:
原來 JAVA 程序把報表和主應用緊緊綁在一起,現在可以把報表模塊單獨拆分維護,解釋執行可以熱切換,修改報表可以不必重啟整個應用了。甚至還可以將報表模板單獨部署,在物理上實現分離。
工具對復雜計算的支持可以參考 如何應對報表開發中的復雜邏輯
對多樣性數據源的支持參考 在報表中直接使用多樣性數據源
總結
以上是生活随笔為你收集整理的java实现报表_修改带 JAVA 自定义类的报表还要重启应用,咋解决?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: typescript的类型描述_Type
- 下一篇: python qt开发_Python 使
