假设我在一个包中包含200个格式化程序。如何注册格式化程序包而不是这样做:
<mvc:annotation-driven conversion-service="conversionService" />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="formatters">
<set>
<ref bean="MyFormatter1" />
<ref bean="MyFormatter2" />
...
<ref bean="MyFormatter200" />
</set>
</property>
</bean>
答案 0 :(得分:0)
我会尝试使用java配置:
import org.springframework.context.annotation.Configuration;
import org.springframework.format.Formatter;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addFormatters(FormatterRegistry registry) {
for (Formatter formatter : collectFormatters()) {
registry.addFormatter(formatter);
}
}
}
现在您需要实现collectFormatters
方法。我不知道您的应用程序的详细信息,因此可能有许多不同的方法:
1)您可以将@Component
注释添加到所有格式化程序,将此包添加到自动扫描,因此Spring将初始化它们并添加到应用程序上下文中。之后,您可以像这样注入它们:@Resource List<Formatter> formatters
。
2)你可以自己编写一些逻辑来检查包(我建议看看Spring是如何做的)。