由于Google App Engine将定期启动和停止实例,这意味着定期导致冷启动时间,因此我希望使用XML配置我的Spring MVC3应用程序,以避免在启动新实例时使用批注配置时扫描类文件中的批注而导致的3-5秒延迟。
然而,编写xml有点繁琐,而且使用注释来定义我的配置要容易得多。因此,我希望两全其美,使用注释来生成配置文件,然后在运行时关闭扫描。从this question来看,似乎还没有任何现有的工具可以做到这一点。
那么,实现这一目标的最佳方法是什么?假设有一个类在运行时在spring中执行扫描,可以重新分配到设计时进行扫描,然后输出xml?
对于在xml配置中不可能从注释配置中完成的事情,是否有任何限制?
发布于 2011-11-14 18:35:48
我会使用Spring来扫描包含带注释的类的包,然后使用反射来获取类及其方法上的注释并相应地编写XML。
在Spring中执行扫描的类是ClassPathScanningCandidateComponentProvider。下面是如何使用它的代码片段:
ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);
scanner.addIncludeFilter(new AnnotationTypeFilter(Component.class));
for(String packageToScan : packagesToScan) {
for (BeanDefinition bd : scanner.findCandidateComponents(packageToScan)) {
Class clazz = Class.forName(bd.getBeanClassName());
// Use reflection on clazz to write the XML file
}
}我希望这对你有帮助!
https://stackoverflow.com/questions/8119254
复制相似问题