Bootstrap

SpringBoot集成ureport2报表工具(非常简便)

       今天来跟大家分享一下SpringBoot框架集成uReport2工具的操作步骤,部署起来非常方便,不需要像网上那些文章一样单独编写配置文件。当然,如果需要重写uReport的配置文件就另当别论了。下面开始详细讲解:
       在往下查看文章时,请确认当前项目的数据库连接是否正确,以便接下来的操作。
①在pom.xml文件中添加uReport依赖:

	<!-- ureport2 报表-->
		<dependency>
			<groupId>com.bstek.ureport</groupId>
			<artifactId>ureport2-console</artifactId>
			<version>2.2.9</version>
		</dependency>

②在Application.java的同级目录下创建uReport2的实例配置类SpringContextUreport ,将uReport2实例交由Spring容器进行管理:

import javax.servlet.Servlet;

import com.bstek.ureport.console.UReportServlet;

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;

@Configuration
@ImportResource("classpath:ureport-console-context.xml") // 加载ureport对应的xml配置文件
public class SpringContextUreport {

    @Bean
    public ServletRegistrationBean<Servlet> ureport2Servlet(){
        return new ServletRegistrationBean<>(new UReportServlet(), "/ureport/*");
    }
}

注意:

2021年1月4日补:如果是低版本的Springboot项目,则ServletRegistrationBean不需要加上泛型参数"<Servlet>",返回的对象通过去掉"<>"。

       如下图所示:
在这里插入图片描述
③编写uReport2数据源配置类UreportDataSource,通过实现BuildinDatasource的方法来初始化工具的数据库连接源,代码如下:

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * Ureport报表数据源
 */
@Component
public class UreportDataSource implements BuildinDatasource {
	
    @Autowired
    private DataSource dataSource;//通过dataSource对象来获取数据库连接对象并且返回给uReport2
    //控制台日志打印
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Override
    public Connection getConnection() {
        try {
        	//此处的dataSource是加载application.properties文件中的数据库连接信息,如需打开其他数据库,笔者可以在此处添加其他数据库连接信息源来返回连接对象即可
			return dataSource.getConnection();
		} catch (SQLException e) {
			logger.error("Ureport 数据源 获取连接失败!");
			e.printStackTrace();
		}
		return null;
    }

    @Override
    public String name() {
    	//此处为数据源的名称,可以根据自己的情况进行编写
        return "uReport数据源";
    }

    
}

       笔者在此处是把UreportDataSource类放到公共模块作为一个单独的配置模块,读者可以根据自己的需要划分好模块放置即可。
在这里插入图片描述
       部署完成时,可以重启项目,然后访问http://localhost:8080/ureport/designer,如果有项目名称,记得加上项目名称。此时会出现以下界面:
在这里插入图片描述
       我们可以选择数据源,点击下面的按钮,可以看到自己配置数据源,并且它的名称为:“uReport数据源”,即为UreportDataSource类中实现的name()方法的返回值:
在这里插入图片描述
在这里插入图片描述
       到此,SpringBoot框架集成ureport2工具算是大功告成。当然,此处在使用时可能还会出现一些问题,笔者将在下一章的uReport2具体操作步骤中进行讲解。欢迎大家前来学习,如有什么疑问和建议,可以在评论区留言,谢谢。

;