功能说明
解决java项目开发中绝大部分导入导出功能,尽量一劳永逸。
解决在程序写死或者外部配置文件写死导入导出模板,如需更换模板内容需重新发程序包。
由此带来的问题可能会由配置文件内容或者符号修改导致异常,程序内部代码修改导致异常。
目前解决问题,通过界面配置控制模板内容。减少以上可能引发异常, 更方便以秒级别替换需要导出的模板内容。
接入方式
使用此功能需要完成以下几步工作:
1.使用Maven引入第三方jar package,参照文档《依赖方式》。
2.设计存储模板数据表结构,初始化存储脚本(mysql数据库直接执行初始化脚本即可,脚本所在目录参照下图:
3.提供界面需要导出javaBean及field对应getFunction参数接口 or 手动维护导出数据实体关联关系。
4.通过界面配置需要导出javaBean及field对应getFunction.(将在最后一步展示导入导出界面配置)。
5.调用导入导出业务对象实现导出,完成以上配置后导出代码只需要在接口层实现下图几行编码(此处是唯一需要后端手动编码接入自身项目相关业务导出数据接口,在开发者业务接口中注入业务对象完成调用导入导出业务业务对象完成导出功能)。
依赖方式
1.本地maven环境setting.xml文件中加入Maven私服配置.docx相关配置
2. 在工程pom文件中加入以下配置:
<parent>
<groupId>com.gvt.msf</groupId>
<artifactId>msf-app</artifactId>
<version>1.0.1-SNAPSHOT</version>
</parent>
<properties>
<msf-app.version>1.0.1-SNAPSHOT</msf-app.version>
<importexport.version>1.0.1-SNAPSHOT</importexport.version>
<importexport-tools.version>1.0.1-SNAPSHOT</importexport-tools.version>
<importexport-web.version>1.0.1-SNAPSHOT</importexport-web.version>
</properties>
<!-- msf-app-dependencies -->
<dependency>
<groupId>com.gvt.msf</groupId>
<artifactId>msf-app-dependencies</artifactId>
<version>${msf-app.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- com.gvt.components.importexport-tools -->
<dependency>
<groupId>com.gvt.components</groupId>
<artifactId>importexport-tools</artifactId>
<version>${importexport-tools.version}<ersion>
</dependency>
<!-- com.gvt.components.importexport-web -->
<dependency>
<groupId>com.gvt.components</groupId>
<artifactId>importexport-web</artifactId>
<version>${importexport-web.version}<ersion>
</dependency>
配置方式
1.微服务启动主类中加入扫描配置
加入图中划红线部分
@SpringBootApplication(scanBasePackages = {"com.gvt.compon.importexport.web"})
@MapperScan({"com.gvt.compon.importexport.web.dao"})
2.加入Mapper文件扫描配置
mybatis:
mapperLocations: classpath:com/gvt/compon/importexport/web/dao/impl/*.xml
3.导入导出界面配置
启动完成后访问SwaggerUI查看配置导入导出模板接口,如图
请求地址: ${ ipAddress }:${ port } /swagger-ui.html
4.导入导出界面配置
待深度测试优化问题:
此处有可能遗留问题,一是时间复杂度,大批量数据处理时效性;二是批量对象在jvm中的优化,空间复杂度。