项目由于一个导出的需求,需要自定义模板,所以选择了使用freemarker来实现。
引入依赖
<!--freemarker-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
等实现了之后,发现原有的easyExcel实现的导出报错
翻阅资料发现是easyexcel和poi版本不一致导致的
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>4.0.1</version>
微服务的公共模块引入的依赖是
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
解决方案就是把依赖排除掉
<!-- excel工具包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.10</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
</exclusions>
</dependency>
其实像是导出这种,最好是全局的依赖控制版本,还有json等依赖最好是控制为统一版本,统一更新,但是如果每个后端自己去引用,很容易出现依赖冲突问题。尤其是服务间依赖过多,所以微服务的架构,采用api和server两个服务做分离是比较好的设计
公司名-服务名、公司名-服务名-api两个服务这样子,把实体类和feign接口都放入api服务方便其他服务依赖。