1
我目前正在重构Spring-MVC控制器中一个方法的(前)怪物。该方法主要做了以下几件事:如何将资源映射到枚举常量?
- 挖了从请求
- 获取从缓存
- 由他们鉴定了一个XML表示几个标识使用一个XSL样式表来产生PDF(然后将其存储到缓存并将可以找到的密钥添加到
Model
)。
我已经能够通过制作Product
枚举来删除几乎所有重复的逻辑,其中包含所有其他产品特定的事情,但XSL样式表的位置有问题。以前,它们被配置为控制器bean的org.springframework.core.io.Resource
-类型属性,但现在产品特定的东西在枚举中,我要么需要将它们映射到枚举常量,要么找到另一个定位它们的解决方案。
我认为最好将XSL作为枚举的一部分,因为它们之间存在1对1的关系,但是没有办法在那里注入资源。使用类加载器手动将资源加载到枚举将在测试中工作,但在生产环境中会有问题,因为样式表文件不在类路径中。另外我不想让枚举依赖于任何Spring的东西。
关于如何解决这个问题,而不是使枚举和控制器过紧耦合的任何想法?