java - 在更改时自动编译 JasperReports

标签 java spring jasper-reports

我正在开发一个网络应用程序。我们正在使用 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/

相关文章:

encoding - JasperReports HTML输出中的':'字符

java - 多线程写入文件时的行为

java - 级联属性导致的分离实体错误

java - 查询 Java 的错误 SQL 语法

mysql - iReport 说 'The document has no pages'

java - 如何在没有数据库的情况下创建 jasper 报告

java - 使用 Java Sound API 播放 MP3

java - 如何使用 spring 添加多个谷歌云数据源

java - 为什么我的项目需要使用 JavaConfig 的 Spring Security 的 applicationContext.xml

java - 用于 OneToMany 的 Spring RowMapper?