JimuReport快速集成指南

JimuReport快速集成指南

【免费下载链接】jimureport 「数据可视化工具:报表、大屏、仪表盘」积木报表是一款类Excel操作风格,在线拖拽设计的报表工具和和数据可视化产品。功能涵盖: 报表设计、大屏设计、打印设计、图形报表、仪表盘门户设计等,完全免费!秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、解决各类报表难题。 【免费下载链接】jimureport 项目地址: https://gitcode.com/jeecgboot/jimureport

本文详细介绍了JimuReport报表工具的快速集成方法,包括依赖引入与版本选择、SpringBoot2与SpringBoot3的集成差异、初始化SQL与配置详解以及Docker快速部署方案。帮助开发者快速完成项目集成与部署。

JimuReport的依赖引入与版本选择

JimuReport作为一款功能强大的报表工具,其快速集成依赖于正确的依赖引入和版本选择。以下内容将详细介绍如何在SpringBoot项目中引入JimuReport的相关依赖,并选择合适的版本以满足项目需求。

1. 核心依赖引入

JimuReport的核心功能通过jimureport-spring-boot-starter依赖提供。以下是针对不同SpringBoot版本的依赖配置:

SpringBoot 2.x 版本
<dependency>
    <groupId>org.jeecgframework.jimureport</groupId>
    <artifactId>jimureport-spring-boot-starter</artifactId>
    <version>2.1.2</version>
</dependency>
SpringBoot 3.x 版本
<dependency>
    <groupId>org.jeecgframework.jimureport</groupId>
    <artifactId>jimureport-spring-boot3-starter-fastjson2</artifactId>
    <version>2.1.1</version>
</dependency>

2. 扩展功能依赖

JimuReport支持多种扩展功能,如NoSQL数据源、ECharts图表等。以下是常用的扩展依赖:

NoSQL支持
<dependency>
    <groupId>org.jeecgframework.jimureport</groupId>
    <artifactId>jimureport-nosql-starter</artifactId>
    <version>2.0.0</version>
</dependency>
ECharts图表支持
<dependency>
    <groupId>org.jeecgframework.jimureport</groupId>
    <artifactId>jimureport-echarts-starter</artifactId>
    <version>2.1.1</version>
</dependency>

3. 版本选择建议

在选择版本时,需注意以下几点:

  • 兼容性:确保依赖版本与项目的SpringBoot版本兼容。例如,SpringBoot 2.x项目应使用jimureport-spring-boot-starter,而SpringBoot 3.x项目需使用jimureport-spring-boot3-starter-fastjson2
  • 功能需求:根据项目需求选择扩展依赖。例如,若需使用MongoDB或Redis作为数据源,则需引入jimureport-nosql-starter
  • 稳定性:建议使用最新稳定版本,以获得最佳性能和功能支持。

4. 依赖冲突解决

在引入JimuReport依赖时,可能会与其他依赖产生冲突。以下是一些常见的解决方法:

  • 排除冲突依赖:使用<exclusions>标签排除冲突的依赖项。
  • 版本对齐:确保所有相关依赖的版本一致,避免因版本差异导致的问题。

5. 示例配置

以下是一个完整的pom.xml配置示例,展示了如何引入JimuReport的核心和扩展依赖:

<dependencies>
    <!-- JimuReport核心依赖 -->
    <dependency>
        <groupId>org.jeecgframework.jimureport</groupId>
        <artifactId>jimureport-spring-boot-starter</artifactId>
        <version>2.1.2</version>
    </dependency>

    <!-- NoSQL支持 -->
    <dependency>
        <groupId>org.jeecgframework.jimureport</groupId>
        <artifactId>jimureport-nosql-starter</artifactId>
        <version>2.0.0</version>
    </dependency>

    <!-- ECharts图表支持 -->
    <dependency>
        <groupId>org.jeecgframework.jimureport</groupId>
        <artifactId>jimureport-echarts-starter</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>

## SpringBoot2与SpringBoot3的集成差异

积木报表(JimuReport)作为一款功能强大的免费报表工具,支持与SpringBoot2和SpringBoot3的无缝集成。然而,由于SpringBoot3在依赖管理和配置上存在一些显著变化,开发者在集成时需要注意以下几点差异:

---

### 1. **依赖包差异**
SpringBoot3对部分依赖进行了升级和调整,因此在引入积木报表时,需根据SpringBoot版本选择对应的依赖包。

#### SpringBoot2依赖
```xml
<dependency>
    <groupId>org.jeecgframework.jimureport</groupId>
    <artifactId>jimureport-spring-boot-starter</artifactId>
    <version>2.1.2</version>
</dependency>
SpringBoot3依赖
<dependency>
    <groupId>org.jeecgframework.jimureport</groupId>
    <artifactId>jimureport-spring-boot3-starter-fastjson2</artifactId>
    <version>2.1.1</version>
</dependency>
差异说明
  • 包名调整:SpringBoot3版本的依赖包名称中明确标注了spring-boot3
  • Fastjson2支持:SpringBoot3默认使用Fastjson2作为JSON处理器,因此依赖包名称中包含了fastjson2标识。

2. 安全配置差异

SpringBoot3在安全配置上引入了新的API,尤其是SecurityFilterChain的配置方式发生了变化。

SpringBoot2示例
@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/jmreport/**").permitAll()
            .anyRequest().authenticated();
    }
}
SpringBoot3示例
@Configuration
@EnableWebSecurity
public class SpringSecurityConfig {
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(auth -> auth
            .requestMatchers("/jmreport/**").permitAll()
            .anyRequest().authenticated());
        return http.build();
    }
}
差异说明
  • 配置方式:SpringBoot3移除了WebSecurityConfigurerAdapter,改为通过SecurityFilterChain Bean配置。
  • API调整antMatchers变更为requestMatchers,方法链式调用更符合函数式编程风格。

3. JDK版本兼容性

SpringBoot3要求JDK17及以上版本,而SpringBoot2支持JDK8。积木报表的SpringBoot3版本也遵循了这一要求。

特性SpringBoot2SpringBoot3
JDK支持JDK8及以上JDK17及以上
积木报表依赖包jimureport-spring-boot-starterjimureport-spring-boot3-starter-fastjson2

4. 初始化SQL与配置

尽管SpringBoot2和SpringBoot3在初始化SQL和配置文件上基本一致,但SpringBoot3可能会对一些配置项的默认值进行调整。例如:

  • 数据库连接池:SpringBoot3默认使用HikariCP,而SpringBoot2可能兼容多种连接池。
  • 缓存配置:SpringBoot3对Redis和MongoDB的自动配置逻辑有所优化。

5. 其他注意事项

  • 日志框架:SpringBoot3对Log4j2的支持更完善,建议在集成时使用Log4j2作为日志框架。
  • 测试兼容性:如果项目中使用了JUnit4,需升级到JUnit5以适配SpringBoot3。

通过以上对比,开发者可以更清晰地了解SpringBoot2与SpringBoot3在集成积木报表时的差异,从而快速完成项目升级或迁移。

初始化SQL与配置详解

JimuReport的快速集成离不开正确的数据库初始化和相关配置。本节将详细介绍如何通过初始化SQL脚本创建数据库表结构,并解析关键配置项的作用。

1. 数据库初始化

JimuReport使用MySQL 5.7作为默认数据库,初始化脚本位于项目目录的db/jimureport.mysql5.7.create.sql文件中。以下是脚本的核心内容:

CREATE DATABASE IF NOT EXISTS `jimureport` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `jimureport`;

-- 示例表结构:会员年龄分布表
DROP TABLE IF EXISTS `huiyuan_age`;
CREATE TABLE `huiyuan_age` (
  `id` varchar(36) NOT NULL,
  `name` varchar(50) COMMENT '名称',
  `value` varchar(20) COMMENT '值',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 示例数据
INSERT INTO `huiyuan_age` VALUES ('1339875613023969282', '25岁以下', '1500');
INSERT INTO `huiyuan_age` VALUES ('1339875692078211073', '26~30岁', '800');
关键点说明:
  • 字符集:使用utf8mb4以支持完整的Unicode字符(如emoji)。
  • 表结构:每个表包含id主键字段,以及业务相关的字段(如namevalue)。
  • 数据初始化:脚本中预置了示例数据,便于快速测试。

2. 配置详解

JimuReport的配置主要集中在jimureport-example/src/main/java/com/jeecg/modules/jmreport/config目录下。以下是核心配置类的功能说明:

2.1 Spring Security配置
@Configuration
public class SpringSecurityConfig {
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/jmreport/**").permitAll()
            .anyRequest().authenticated();
        return http.build();
    }
}
  • 作用:配置接口权限,允许/jmreport/**路径下的请求无需认证。
  • 关键注解@Configuration标记为配置类,@Bean定义安全过滤器链。
2.2 Redis配置
@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);
        return template;
    }
}
  • 作用:初始化Redis连接模板,用于缓存报表数据。
  • 依赖:需确保Redis服务已启动,并在application.yml中配置连接信息。
2.3 跨域配置
@Configuration
public class CustomCorsConfiguration implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST");
    }
}
  • 作用:允许所有来源的跨域请求,支持GET和POST方法。

3. 初始化流程

  1. 执行SQL脚本
    mysql -u root -p < db/jimureport.mysql5.7.create.sql
    
  2. 启动项目
    cd jimureport-example && mvn spring-boot:run
    
  3. 验证:访问http://localhost:8085/jmreport/list,若返回报表列表,则初始化成功。

4. 常见问题

问题现象可能原因解决方案
数据库连接失败MySQL服务未启动启动MySQL服务
接口返回403权限配置错误检查SpringSecurityConfig
跨域请求被拦截未配置跨域确保CustomCorsConfiguration生效

通过以上步骤和配置,您可以快速完成JimuReport的初始化与集成。

Docker快速部署与运行

JimuReport提供了基于Docker的快速部署方案,通过docker-compose可以一键启动项目,无需手动配置数据库和运行环境。以下是详细步骤:

1. 准备工作

确保已安装以下工具:

  • Docker(版本18.03+)
  • Docker Compose(版本1.25+)

2. 下载项目

克隆项目仓库到本地:

git clone https://gitcode.com/jeecgboot/jimureport.git

3. 构建与启动

进入项目目录并启动服务:

cd jimureport/jimureport-example
docker-compose up -d
服务说明
  • jimureport-mysql: MySQL 5.7数据库服务,自动初始化jimureport数据库。
  • jimureport-app: 积木报表应用服务,基于Spring Boot运行。

4. 访问服务

启动完成后,通过以下地址访问:

  • 报表工作台: http://localhost:8085/jmreport/list
  • 仪表盘工作台: http://localhost:8085/drag/list

默认账号密码为admin/123456

5. 配置说明

数据库配置

数据库配置文件位于jimureport-example/db/jimureport.mysql5.7.create.sql,如需修改数据库名称或表结构,可编辑此文件后重新构建镜像。

应用配置

应用配置文件为jimureport-example/src/main/resources/application.yml,支持以下自定义配置:

  • 数据库连接参数
  • Redis缓存配置
  • 文件存储路径

6. 流程图

以下为Docker部署的流程图: mermaid

7. 常见问题

端口冲突

8085端口被占用,可修改docker-compose.yml中的端口映射:

ports:
  - "新端口:8085"
数据库初始化失败

检查jimureport-mysql容器日志,确认SQL脚本是否执行成功:

docker logs jimureport-mysql

8. 示例代码

以下为docker-compose.yml的配置示例:

version: '3'
services:
  jimureport-mysql:
    build: ./db
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: jimureport
  jimureport-app:
    build: .
    ports:
      - "8085:8085"
    depends_on:
      - jimureport-mysql

通过以上步骤,您可以快速完成JimuReport的Docker部署与运行。

总结

JimuReport作为一款功能强大的报表工具,通过本文的详细指南,开发者可以快速掌握其集成与部署方法。从依赖引入、版本选择到数据库初始化,再到Docker快速部署,每个步骤都提供了清晰的说明和示例代码。无论是SpringBoot2还是SpringBoot3项目,都能快速完成集成,提升开发效率。

【免费下载链接】jimureport 「数据可视化工具:报表、大屏、仪表盘」积木报表是一款类Excel操作风格,在线拖拽设计的报表工具和和数据可视化产品。功能涵盖: 报表设计、大屏设计、打印设计、图形报表、仪表盘门户设计等,完全免费!秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、解决各类报表难题。 【免费下载链接】jimureport 项目地址: https://gitcode.com/jeecgboot/jimureport

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值