润乾与 springBoot 集成

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。下面介绍下一个简单的 springBoot 项目的搭建以及与润乾 V2018 集成的过程。

PS:如已掌握 springBoot 工程搭建,第一部分可忽略

开发工具:myeclipse 2017

一:maven 构建 springBoot 项目

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

2、选择构建工具 Maven Project、Spring Boot 版本,Dependencies

选择 web,可参考下图所示:

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

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

工程会自动根据 pom.xml 中的配置自动加载需要的 jar 文件,jar 加载完成后一个简单的 springBoot 工程搭建完毕。

5、编写 controller 测试:

package com.neo.springBoot;

import java.util.Map;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public****class HelloController {

@RequestMapping(“/hello”)

public String index() {

return“Hello world!”;

    }

}

6、启动 springBoot,工程搭建后,会自动在 com.neo.springBoot(neo.springBoot 路径为下载工程时设置的包路径)下生成一个 Application.java,运行该类就能启动工程,在该类上右键——Run As——Spring Boot App,即可启动项目。

7、打开浏览器访问:http://localhost:8080/hello,即可在页面中输出“Hello World!”

8、springBoot 默认不支持 jsp 页面展示,而报表需要通过 jsp 的 tag 标签展示,所以要在功能中增加 jsp 展示的配置。

9、打开 pom.xml,在里边增加:

<dependency>

 <groupId>javax.servlet</groupId>

 <artifactId>javax.servlet-api</artifactId>

 </dependency>

 <dependency>

 <groupId>javax.servlet</groupId>

 <artifactId>jstl</artifactId>

 </dependency>

<dependency>

 <groupId>org.apache.tomcat.embed</groupId>

 <artifactId>tomcat-embed-jasper</artifactId>

 </dependency>

 同样,工程会自动加载相关的 jar 包,下载完成后,工程即可支持 jsp 文件。

二:集成润乾

1:在 src/main 下新建目录 webapp,并将润乾 V5 设计器安装后产生的 demo 应用下的文件复制到 webapp 下。springBoot 不需要 web.xml,所以 web.xml 不需要复制,并且 WEB-INF 下的 lib 目录不需要复制。

2:集成 jar 包,springBoot 是通过 maven 管理 jar 包,在设计器安装目录下的 \report\doc\zh 有个 pom.xml,润乾需要的第三方 jar 包在该文件中配置,将润乾的 pom.xml 中的内容复制到工程中即可。润乾自己的 jar 包需要手动集成到 springBoot 项目中,集成方法:

在开发工具中,右键 Referenced Libraries——Build Path——configure Build Path——Add External JARs,在弹出窗口中选择引入的 jar 包,本例只引入几个相关 jar 包,实际使用时引入除 pom.xml 中其他所有 jar 包,


如需其他 jar 包,可参考:
润乾报表需要的 jar 列表:

数据报表展现需要的基础 jar:

dm.jar—授权解析
raqsoftReport.jar—展现处理
jdom.jar—- 解析 xml

根据情况添加以下 jar:

导出 excel:

imagepng

导出 PDF:

imagepng

普通图形计算展现:

imagepng

echarts 图形计算展现:
json.jar
3、配置 servlet

润乾报表需要 servlet 加载配置文件,普通 java web 应用中 servlet 是在 web.xml 中配置,但 springBoot 总并不会读取 web.xml,所以所需要的 servlet、listener、filter 都需要单独在 springBoot 中单独配置。

Spring Boot 提供了 ServletRegistrationBeanFilterRegistrationBeanServletListenerRegistrationBean这 3 个来进行配置 Servlet、Filter、Listener。

在工程中新建 class,源码如下:


package com.neo.springBoot;

import java.util.*; 

import org.springframework.boot.context.embedded.FilterRegistrationBean; 

import org.springframework.boot.context.embedded.ServletListenerRegistrationBean; 

import org.springframework.boot.context.embedded.ServletRegistrationBean; 

import org.springframework.context.annotation.Bean; 

import org.springframework.context.annotation.Configuration; 

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.raqsoft.report.view.ReportServlet;

import com.raqsoft.report.view.ServletMappings; 

@Configuration

public class WebConfig {  

@Bean
//统计报表servlet注册
public ServletRegistrationBean servletRegistrationBean() {  
		ServletRegistrationBean registration = new ServletRegistrationBean(new ReportServlet());
        registration.setLoadOnStartup(1);
        registration.addInitParameter("configFile", "/WEB-INF/raqsoftConfig.xml");
        registration.addInitParameter("headless", "none"); 
        registration.setName("reportServlet");
        registration.addUrlMappings("/reportServlet"); 
        com.raqsoft.report.view.ServletMappings.mappings.put( "com.raqsoft.report.view.ReportServlet", "/reportServlet");
        System.out.println("润乾servlet注册完成"); 
        return registration; 
    }  
    @Bean
//填报表servlet注册
	public ServletRegistrationBean servletRegistrationBean1() {
		ServletRegistrationBean reg =  new ServletRegistrationBean(new InputServlet());
		reg.setLoadOnStartup(1);
		reg.addInitParameter("configFile", "/WEB-INF/raqsoftConfig.xml");
		
		reg.setName("InputServlet");
		
		reg.addUrlMappings("/InputServlet");
		
		com.raqsoft.input.view.ServletMappings.mappings.put("com.raqsoft.input.view.InputServlet", "/InputServlet");
		
		
		return reg;
	} 

}

这样就可以完成润乾的 reportServlet 的注册,本例只介绍润乾 V2018 集成到 springBoot 中的核心操作,所以只需要这一个 servlet 即可,其他 servlet、Filter、Listener 等按照相应的方法添加即可。

4、制作测试报表放到 src/main/webapp/WEB-INF/reportFiles 目录下。

5、重启工程,在浏览器中访问:http://localhost:8080/reportJsp/showReport.jsp?rpx=test.rpx,即可展现报表,如图:

至此,润乾 V2018 集成到 springBoot 成功。

** 总结:** 润乾部署在 springBoot 上和和他常见部署最大的不同就是 servlet 的加载,在 springBoot 中要通过程序加载相应的 servlet,加载方式也有多种,到时候根据实际情况进行设置即可。

以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾