springboot整合ureport2报表

1.新建一个springboot工程,并在pom文件中引入UReport2的jar包依赖,ureport2选用2.2.9版本,

poi选用3.15以上的版本,我选择的3.17版本

<!--ureport-->
<dependency>
    <groupId>com.bstek.ureport</groupId>
    <artifactId>ureport2-console</artifactId>
    <version>2.2.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>

2.新建一个类UreportConfig,并实现BuildinDatasource接口,其中,ServletRegistrationBean需要注入到spring容器中,目的是访问ureport报表的请求url规则,同时通过@ImportResource注解扫描ureport2源码包中的ureport-console-context.xml配置进入到容器中

package org.fh.config;

import com.bstek.ureport.console.UReportServlet;
import com.bstek.ureport.definition.datasource.BuildinDatasource;

import javax.annotation.Resource;
import javax.sql.DataSource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import java.sql.Connection;
import java.sql.SQLException;

@ImportResource("classpath:ureport-console-context.xml")
@Configuration
@EnableAutoConfiguration
public class UreportConfig implements BuildinDatasource {

    @Resource
    public DataSource dataSource;
    private Logger log = LoggerFactory.getLogger(getClass());

    @Bean //定义ureport的启动servlet
    @SuppressWarnings("unchecked")
    public ServletRegistrationBean ureportServlet(){
        return new ServletRegistrationBean(new UReportServlet(),"/ureport/*");
    }
    @Override
    public String name() {
        return "myDatasource";
    }

    @Override
    public Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            log.error("Ureport 数据源 获取连接失败!");
            e.printStackTrace();
        }
        return null;
    }

}

如果是ssm框架可以通过在web.xml中进行这样的配置。同上

<servlet>
    <servlet-name>ureportServlet</servlet-name>
    <servlet-class>com.bstek.ureport.console.UReportServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>ureportServlet</servlet-name>
    <url-pattern>/ureport/*</url-pattern>
  </servlet-mapping>

如果是ssm框架,可以通过spring.xml文件的方式。将ureport-console-context.xml配置进入到容器中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd"
        default-lazy-init="true">
    <import resource="classpath:ureport-console-context.xml"/>
</beans>

其中name的配置是配置默认数据源

 @Override
    public String name() {
        return "myDatasource";
    }

访问的网址就可以看到这样的操作

因为我的项目通过java类注入的方式配置了端口和项目访问名称,8081端口,fh-admin-system作为根路径

 @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> myWebServerFactoryCustomizer(){
        return new WebServerFactoryCustomizer<TomcatServletWebServerFactory>() {
            @Override
            public void customize(TomcatServletWebServerFactory factory) {
                factory.setPort(8081);
                factory.setContextPath("/fh-admin-system");
            }
        };
    }

相当于, 在application.xml中配置,通过启动springboot项目,自动装配扫描是否有配置。

server.port=8081
server.servlet.context-path=/fh-admin-system

最后就是访问项目的页面,http://192.168.1.104:8081/fh-admin-system/ureport/designericon-default.png?t=L892http://192.168.1.104:8081/fh-admin-system/ureport/designer

ureport2主页

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spring Boot整合UReport2可以通过以下步骤实现: 1. 引入UReport2的依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>com.bstek.ureport</groupId> <artifactId>ureport2-core</artifactId> <version>2..6</version> </dependency> ``` 2. 配置UReport2的数据源 在application.properties文件中添加以下配置: ``` ureport.fileStoreDir=ureport_files ureport.ds.myds.driverClassName=com.mysql.jdbc.Driver ureport.ds.myds.url=jdbc:mysql://localhost:3306/test ureport.ds.myds.username=root ureport.ds.myds.password=root ``` 其中,ureport.fileStoreDir是UReport2报表文件存储的目录,ureport.ds.myds是数据源的配置,可以根据实际情况修改。 3. 创建UReport2报表 在resources目录下创建ureport文件夹,并在该文件夹下创建一个以ureport为后缀的文件,例如test.ureport.xml。 在该文件中可以使用UReport2提供的设计器创建报表。 4. 配置Spring Boot的Controller 在Spring Boot的Controller中注入UReportEngine对象,并在方法中调用UReportEngine的runReport方法生成报表。 ``` @RestController public class ReportController { @Autowired private UReportEngine uReportEngine; @GetMapping("/report") public void report(HttpServletResponse response) throws Exception { UReportFile reportFile = uReportEngine.getReportFile("test.ureport.xml"); UReport uReport = reportFile.parse(); Map<String, Object> parameters = new HashMap<>(); parameters.put("param1", "value1"); parameters.put("param2", "value2"); byte[] bytes = uReportEngine.generatePdf(uReport, parameters); response.setContentType("application/pdf"); response.getOutputStream().write(bytes); } } ``` 在上述代码中,调用了UReportEngine的getReportFile方法获取报表文件,然后调用parse方法解析报表文件,最后调用generatePdf方法生成PDF格式的报表。 5. 运行Spring Boot应用程序 在浏览器中访问http://localhost:808/report,即可生成报表并下载。 ### 回答2: Spring Boot是一种开源框架,可以用于快速构建基于Spring的企业级Web应用程序。而Ureport2是一个基于Java的开源报表引擎。将Spring Boot与Ureport2结合起来,可以轻松构建出一个高效、稳定的报表系统。 首先,需要在Spring Boot的Maven依赖中添加Ureport2的依赖项,例如: ``` <dependency> <groupId>com.bstek.ureport</groupId> <artifactId>ureport2-console</artifactId> <version>2.8.14</version> </dependency> ``` 接下来,需要在Spring Boot中配置Ureport2,主要包括以下步骤: 1. 配置Ureport2的工作目录,可以通过在application.properties中添加以下一行代码来实现: ``` ureport2.fileStoreDir=/ureport/filestore ``` 2. 配置Ureport2的资源访问路径,可以通过在application.properties中添加以下一行代码来实现: ``` ureport2.urConfigFile=classpath:ureport-context.xml ``` 3. 在Spring Boot中添加Ureport2的配置文件,需要在src/main/resources目录下创建ureport-context.xml文件,并在其中添加以下代码: ``` <bean id="ureportHtmlViewResolver" class="com.bstek.ureport.view.UreportHtmlViewResolver"> <property name="ureportTemplate" value="classpath:report/"/> </bean> ``` 4. 如果需要使用Ureport2的自定义扩展功能,可以在Spring Boot中添加相关扩展。 最后,还需在Spring Boot中编写相关代码,实现与Ureport2的数据交互。这部分代码需要遵循Ureport2的API规范,可通过Ureport2的文档获取相关信息。 总之,通过以上步骤,就可以轻松地将Spring Boot与Ureport2整合起来,构建出高效稳定的企业级报表系统。 ### 回答3: Spring Boot是一个开源的Java Web框架,它提供了一种快速创建和部署Web应用的方式。Ureport2是一款强大的Java报表引擎,可以快速生成多种格式和样式的报表。将Spring Boot与Ureport2整合可以使开发人员更加轻松地创建和管理报表,提高开发效率。 整合步骤如下: 1.添加依赖库 在pom.xml文件中添加以下依赖库: ```xml <dependency> <groupId>com.bstek.ureport</groupId> <artifactId>ureport2-core</artifactId> <version>2.6.6</version> </dependency> <dependency> <groupId>com.bstek.ureport</groupId> <artifactId>ureport2-web</artifactId> <version>2.6.6</version> </dependency> <dependency> <groupId>com.bstek.ureport</groupId> <artifactId>ureport2-engine</artifactId> <version>2.6.6</version> </dependency> ``` 2.配置文件 在Spring Boot的配置文件application.properties中增加以下配置: ureport.enabled=true ureport.report_home=/ureport2_home ureport.designer.enabled=true 其中,ureport.enabled设置为true,表示启用ureportureport.report_home表示报表文件存储的根路径;ureport.designer.enabled表示是否启用报表设计器。 3.定义报表控制器 在Spring Boot中定义控制器类来处理生成和展示报表,可以使用Spring Boot提供的@RestController注解来实现。 ```java @RestController @RequestMapping("report") public class ReportController { @Autowired private ReportService reportService; @GetMapping("/pdf") public void generatePdfReport(HttpServletRequest request, HttpServletResponse response) { // 获取报表模板文件 InputStream inputStream = this.getClass().getResourceAsStream("/ureport/test.ureport.xml"); // 获取报表数据 List<Map<String, Object>> dataList = reportService.getDataList(); // 生成PDF格式的报表文件 OutputStream outputStream = null; try { outputStream = response.getOutputStream(); UReportUtils.generatePdf(inputStream, dataList, outputStream); } catch (IOException e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(outputStream); } } } ``` 在上述控制器类中,@GetMapping注解指定URL路径为“/report/pdf”,表示请求生成PDF格式的报表文件。通过报表模板文件和报表数据生成PDF格式的报表,并输出到response中。 4.定义报表服务类 在Spring Boot中定义服务类来获取数据并返回给报表控制器,可以使用Spring Boot提供的@Service注解来实现。 ```java @Service public class ReportService { public List<Map<String, Object>> getDataList() { // 从数据库或其他数据源获取数据 List<Map<String, Object>> dataList = new ArrayList<>(); Map<String, Object> data = new HashMap<>(); data.put("name", "张三"); data.put("age", 28); dataList.add(data); return dataList; } } ``` 在上述服务类中,getDataList方法从数据库或其他数据源获取数据,并返回给报表控制器使用。 整合完毕后,启动应用程序,访问“/report/pdf”即可生成PDF格式的报表文件并输出到浏览器中。Ureport2还支持多种格式和样式的报表输出,可以根据实际需求进行配置和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪豹_黑狐

谢谢大家的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值