在我们的spring项目中,我们有许多控制器接收客户端输入(过滤器),这将从数据库创建动态查询,结果集将返回给客户端。
例如:
public List<UserResultDTO> getUsers(Filter filter);
public List<TransactionResultDTO> getTransactions(Filter filter);
public List<ProfileResultDTO> getProfile(Filter filter);
我们的新要求非常简单: &#34;请允许将这些结果列表导出到excel文件&#34;
导出到excel文件的整个想法已经得到了解决。 (我们有一个非常强大的Excel提供商)
所以我们的目标基本上是创建一个非常通用的函数\服务,它将采用List并且能够以通用方式导出它。
任何想法这种任务的最佳实践是什么?
想法:
1)创建一个枚举,其中包含每个模型对象的所有配置和列名称(似乎非常冗余和维护地狱)
2)使用反射可能吗?甚至可能为Excel列名称的字段使用注释
3)其他?
谢谢!
答案 0 :(得分:1)
当然不是枚举;这将增加一个人为的相互依赖:如果一些独立的DTO被更改,枚举将被访问几次。
存在BeanInfo API元信息存储为与DTO类并行的Java类。这特别适用于这种情况。但可能过度杀伤。
所以它可能归结为你自己的适配器,使用反射给出合理的输出。使用声明式方法自动检测改进: