我正在开发一个网络应用程序。我们正在使用 jasperreports。在每次调用时编译 jasperreports 是一项开销,需要相当长的时间(4-7 秒)。我们考虑过使用 Spring 预编译 jrxml,但如果 jrxml 发生更改/修改,仍然能够重新生成。 以前有人做过吗?如果是,如何。 谢谢
最佳答案
- 您可以安排一个计时器,每隔 X 小时重新编译一次新的 jasper 报告 (check here)
- 您可以将 jrxml 作为
File
加载并检查其lastModified()
,将其存储在数据库(或HashMap
)中,然后每次后续需要 jrxml 将lastModified()
与数据库/HashMap
中的值进行比较,并仅在它们不同时才重新编译 - 结合以上两种方法
- 创建一个简单的界面(一个受密码保护的页面),列出所有带有“编译”按钮的 jrxml 文件,这样无论何时更改某些内容,您都可以转到该页面并指示应重新编译哪些 jrxml。
关于java - 在更改时自动编译 JasperReports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080422/