今天来跟大家分享一下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具体操作步骤中进行讲解。欢迎大家前来学习,如有什么疑问和建议,可以在评论区留言,谢谢。