皕杰报表集成到springboot项目 2018-10-12

简介: 一、maven构建项目1、访问http://start.spring.io/2、选择构建工具Maven Project、Spring Boot版本2.

一、maven构建项目

1、访问http://start.spring.io/

2、选择构建工具Maven Project、Spring Boot版本2.0.5以及一些工程基本信息,点击“Switch to the full version.”java版本选择8,可参考下图所示:

img_68f813382f7b79b2743182ab8e310aa6.png

3、点击Generate Project下载项目压缩包

4、解压后,使用eclipse,Import -〉 Existing Maven Projects -〉 Next -〉选择解压后的文件夹-〉 Finsh,OK done!

二、引入web模块

1、pom.xml中添加支持web的模块:

〈dependency〉、

      〈groupId〉org.springframework.boot〈/groupId〉

      〈artifactId〉spring-boot-starter-web〈/artifactId〉

 〈/dependency〉

pom.xml文件中默认有两个模块:

spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;

spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。

2、编写controller内容

@RestController

public class HelloWorldController {

    @RequestMapping("/hello")

    public String index() {

        return "Hello World";

    }

}

@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!

3、启动主程序,打开浏览器访问http://localhost:8080/hello,就可以看到效果了,有木有很简单!

三、皕杰web应用嵌套springboot项目

1、在springboot项目src/main文件夹下创建webapp目录

img_ec78ce665a2f4119262fe338053212e2.png

2、将皕杰报表demoserver/webapps/report下的bios_demo、bios_jsp、bios_web_res、WEB-INF文件夹复制到springboot项目src/main/webapp下

img_1d81c456029d0afe3325090f5a995ee4.png

3、更改springboot项目的pom.xml

在〈dependencies〉〈/dependencies〉节点里添加

〈dependency〉

〈groupId〉org.springframework.boot〈/groupId〉

〈artifactId〉spring-boot-devtools〈/artifactId〉

〈optional〉true〈/optional〉

〈/dependency〉

〈dependency〉

〈groupId〉javax.servlet〈/groupId〉

〈artifactId〉jstl〈/artifactId〉

〈/dependency〉

〈dependency〉  

〈groupId〉bijet-license〈/groupId〉 

〈artifactId〉bijet-license-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bijet-license.jar〈/systemPath〉  

〈/dependency〉

〈dependency〉  

〈groupId〉bios-cos〈/groupId〉  

〈artifactId〉bios-cos-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bios-cos.jar〈/systemPath〉  

〈/dependency〉

〈dependency〉  

〈groupId〉bios-cos〈/groupId〉  

〈artifactId〉bios-cos-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bios-cos.jar〈/systemPath〉  

〈/dependency〉

〈dependency〉  

〈groupId〉bios-ehcache-1.6.2〈/groupId〉  

〈artifactId〉bios-ehcache-1.6.2-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bios-ehcache-1.6.2.jar〈/systemPath〉  

〈/dependency〉

〈dependency〉  

〈groupId〉bios-iText-2.1.7〈/groupId〉  

〈artifactId〉bios-iText-2.1.7-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bios-iText-2.1.7.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉bios-poi-3.9〈/groupId〉  

〈artifactId〉bios-poi-3.9-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bios-poi-3.9.jar〈/systemPath〉  

〈/dependency〉  

〈dependency〉  

〈groupId〉bios-poi-ooxml-3.9〈/groupId〉  

〈artifactId〉bios-poi-ooxml-3.9-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bios-poi-ooxml-3.9.jar〈/systemPath〉  

〈/dependency〉  

〈dependency〉  

〈groupId〉bios-report〈/groupId〉  

〈artifactId〉bios-report-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/bios-report.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉dom4j-1.6.1〈/groupId〉  

〈artifactId〉dom4j-1.6.1-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/dom4j-1.6.1.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉commons-logging-1.0.4〈/groupId〉  

〈artifactId〉commons-logging-1.0.4-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/commons-logging-1.0.4.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉iTextAsian〈/groupId〉  

〈artifactId〉iTextAsian-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/iTextAsian.jar〈/systemPath〉  

〈/dependency〉

〈dependency〉  

〈groupId〉javax.wsdl_1.5.1.v200806030408〈/groupId〉  

〈artifactId〉javax.wsdl_1.5.1.v200806030408-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/javax.wsdl_1.5.1.v200806030408.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉javax.xml_1.3.4.v200902170245〈/groupId〉  

〈artifactId〉javax.xml_1.3.4.v200902170245-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/javax.xml_1.3.4.v200902170245.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉org.apache.xerces_2.9.0.v200909240008〈/groupId〉  

〈artifactId〉org.apache.xerces_2.9.0.v200909240008-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/org.apache.xerces_2.9.0.v200909240008.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉poi-ooxml-schemas-3.9-20121203〈/groupId〉  

〈artifactId〉poi-ooxml-schemas-3.9-20121203-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/poi-ooxml-schemas-3.9-20121203.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉stax-api-1.0.1〈/groupId〉  

〈artifactId〉stax-api-1.0.1-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/stax-api-1.0.1.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉xmlbeans-2.3.0〈/groupId〉  

〈artifactId〉xmlbeans-2.3.0-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/xmlbeans-2.3.0.jar〈/systemPath〉  

〈/dependency〉 

〈dependency〉  

〈groupId〉server〈/groupId〉  

〈artifactId〉server-sdk〈/artifactId〉  

〈version〉1.0〈/version〉  

〈scope〉system〈/scope〉  

〈systemPath〉${basedir}/src/main/webapp/WEB-INF/lib/server.jar〈/systemPath〉  

〈/dependency〉


在〈build〉〈/build〉节点里添加

〈resources〉

〈resource〉

〈directory〉src/main/webapp/WEB-INF/resources〈/directory〉

〈includes〉

〈include〉**/*.properties〈/include〉

〈include〉**/*.yml〈/include〉

〈include〉**/*.xml〈/include〉

〈include〉**/*.tld〈/include〉


〈/includes〉

〈filtering〉false〈/filtering〉

〈/resource〉

〈/resources〉

4、新建reportConfig类配置皕杰报表servlet访问

package com.example.demo;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.web.servlet.*;

import org.springframework.context.annotation.*;

import bios.report.engine.output.*;

@Configuration 

public class reportConfig {

@Bean

public ServletRegistrationBean servletRegistrationBean() {

ServletRegistrationBean re = new ServletRegistrationBean(new ReportEmitter());

re.setLoadOnStartup(2);

re.setName("reportServlet");

re.addInitParameter("reportConf", "config.xml");

re.addUrlMappings("/ReportEmitter");

return re;

}

public ServletRegistrationBean servletRegistrationBean1() {

ServletRegistrationBean re = new ServletRegistrationBean(new ImageServlet());

re.setName("imageServlet");

re.addUrlMappings("/ImgServlet");

return re;

}

public ServletRegistrationBean servletRegistrationBean2() {

ServletRegistrationBean re = new ServletRegistrationBean(new FillinServlet());

re.setName("fillinServlet");

re.addUrlMappings("/FillinServlet");

return re;

}

}

5、启动springboot项目,访问报表

http://localhost:8080/ReportEmitter?rpt=Demo/图文展现/动态色彩.brt

img_4263c67b6c850b6f602bf25d7e1913d0.png
目录
相关文章
|
19天前
|
Java 容器
如何在SpringBoot项目中使用过滤器和拦截器
过滤器和拦截器是日常开发中常用技术,用于对特定请求进行增强处理,如插入自定义代码以实现特定功能。过滤器在请求到达 `servlet` 前执行,而拦截器在请求到达 `servlet` 后执行。`SpringBoot` 中的拦截器依赖于 `SpringBoot` 容器,过滤器则由 `servlet` 提供。通过实现 `Filter` 接口并重写 `doFilter()` 方法可实现过滤器;通过实现 `HandlerInterceptor` 接口并重写相应方法可实现拦截器。两者的主要区别在于执行时机的不同,需根据具体场景选择使用。
如何在SpringBoot项目中使用过滤器和拦截器
|
13天前
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
|
22天前
|
XML 前端开发 Java
还不会SpringBoot项目模块分层?来这手把手教你
本文详细介绍了如何为SpringBoot项目创建模块并进行合理的分层设计。通过逐步演示,从创建项目到构建各功能模块,再到具体代码实现,手把手教你实现整洁的代码分层。主要内容包括:创建依赖层、主启动层、模块层及其子模块(如共通层、控制器层、数据持久层等),并通过实例演示了从前端请求到后台服务调用的实际流程。适合SpringBoot初学者及有一定经验但需优化项目结构的开发者参考。
64 2
还不会SpringBoot项目模块分层?来这手把手教你
|
22天前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
45 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
1月前
|
JavaScript 前端开发 Java
SpringBoot + Vue 前端后分离项目精进版本
这篇文章详细介绍了一个基于SpringBoot + Vue的前后端分离项目的搭建过程,包括前端Vue项目的初始化、依赖安装、页面创建和路由配置,以及后端SpringBoot项目的依赖添加、配置文件修改、代码实现和跨域问题的解决,最后展示了项目运行效果。
SpringBoot + Vue 前端后分离项目精进版本
|
1月前
|
Java
SpringBoot项目配置热部署启动 及 热部署失效的问题解决
这篇文章介绍了如何在SpringBoot项目中配置热部署启动,包括在pom文件中添加热部署依赖、在IDEA中进行设置、修改配置文件以及IDEA启动设置,以解决热部署失效的问题。
SpringBoot项目配置热部署启动 及 热部署失效的问题解决
|
13天前
|
存储 NoSQL 数据处理
组合和继承怎么集成一个性能较好的项目
组合与继承是面向对象编程的核心概念,前者通过对象间关联实现高效解耦,后者则重用代码以节省空间和内存。组合常用于现代项目,利用代理与依赖注入简化代码管理;而继承简化了子模块对父模块资源的应用,但修改会影响整体。随着分层解耦及微服务架构如SpringCloud的出现,这些技术进一步优化了数据处理效率和服务响应性能,尤其在分布式存储与高并发场景下。同步异步调用、Redis分布式应用等也广泛运用组合与继承,实现代码和内存空间的有效复用。
|
24天前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
34 8
|
22天前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
46 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
22天前
|
JavaScript 前端开发 小程序
【项目实战】SpringBoot+vue+iview打造一个极简个人博客系统
这是一个基于 SpringBoot+MybatisPlus+Vue+Iview 技术栈构建的个人极简博客系统,适合初学者实战练习。项目包含文章分类、撰写文章、标签管理和用户管理等功能,代码简洁并配有详细注释,易于上手。此外,该项目也可作为毕业设计的基础进行二次开发。
77 0
【项目实战】SpringBoot+vue+iview打造一个极简个人博客系统