springboot 集成润乾操作帖

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

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!”

二:集成润乾


集成文件下载地址

链接:https://pan.baidu.com/s/1Oklf2Nby-1uBU6QYuMc7BQ 
提取码:25ay

1. 增加工程对 jsp 的支持

springBoot 默认不支持 jsp 页面展示,而报表需要通过 jsp 的 tag 标签展示,所以要在功能中增加 jsp 展示的配置。
打开 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 文件。

2. 工程内增加 webapp 目录

在 src/main 下新建目录,目录结构如下图所示:
imagepng

3. 拷贝润乾的文件到工程目录

将润乾设计器安装后产生的 demo 应用下的文件(raqsoft、reportJsp、WEB-INF 三个目录文件)复制到 webapp 下。
springBoot 不需要 web.xml,所以 web.xml 不需要复制,WEB-INF 下的 lib 目录不需要复制。
raqsoftConfig.xml 放到 src/main/resources/config(没有可以新建)目录下。

4. 增加润乾所用第三方 jar 的依赖及其他需手工引入工程的 jar

1)将 pom.xml 的依赖添加到工程内的 pom.xml
pom.zip

注意:此时的 pom.xml 是基于 2021-04-21 的润乾打包版本的

2)工程引入其他 jar(包括报表的核心 jar 和 maven 库没有的第三方 jar)

如 eclipse,通过 工程名上右键–Build Path——configure Build Path——Add External JARs,在弹出窗口中选择引入的 jar 包,引入除 pom.xml 中其他所有 jar 包

5. 注册润乾 servlet

润乾报表需要 servlet 加载配置文件,普通 java web 应用中 servlet 是在 web.xml 中配置,但 springBoot 总并不会读取 web.xml,所以所需要的 servlet、listener、filter 都需要单独在 springBoot 中单独配置。
Spring Boot 提供了 ServletRegistrationBean,FilterRegistrationBean,ServletListenerRegistrationBean 这 3 个来进行配置 Servlet、Filter、Listener。

在工程的 conf 目录下增加注册类,如:

imagepng

代码如下:

package com.test.report.conf;

import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.raqsoft.report.view.ReportServlet;

@Configuration
public class ReportWebConfig {
	@Bean
	//统计报表servlet注册
	public ServletRegistrationBean servletRegistrationBean() {  
			ServletRegistrationBean registration = new ServletRegistrationBean(new ReportServlet());
	        registration.setLoadOnStartup(1);
	        //必须得支持reportServlet从类路径下读xml才可
	        registration.addInitParameter("configFile", "config/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; 
	    }  
}

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

6. 测试集成效果

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

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

注意:高版本的 springboot 会默认带 springboot mvc 框架,所以直接访问 jsp 可能会报页面访问错误,所以需要按照 spring mvc 结构处理方式进行处理。

三:总结


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