我希望能够将运行时配置参数传递/注入到
PropertyValueConverter
中,并且正在努力寻找一种干净的方法来实现它。
在这种特殊情况下,该属性是字符流(提供者),我希望能够在运行时设置字节长度限制(每个字段)。
@Field(type = FieldType.Text)
@ValueConverter(CompactingInputStreamProviderConverter::class)
var fullText: (() -> InputStream)?
如果
PropertyValueConverter
可以是一个 bean,并且我可以使用 Spring DI 来获取其中的配置,并且如果有关该字段的信息暴露给它,那就太好了。
您可以配置 bean 感知的 PropertyValueConverterFactory 以在 PropertyValueConverters 中启用 DI:
@Bean
public MongoCustomConversions mongoCustomConversions(ApplicationContext appContext) {
return MongoCustomConversions.create(configurer -> {
SimplePropertyValueConversions valueConversions = new SimplePropertyValueConversions();
valueConversions.setConverterFactory(PropertyValueConverterFactory.beanFactoryAware(appContext));
configurer.setPropertyValueConversions(valueConversions);
});
}