Java 执行上下文:组件扫描编程方式?
我目前混合使用Java 执行上下文:组件扫描编程方式?,java,spring,annotations,Java,Spring,Annotations,我目前混合使用AnnotationConfigApplicationContext和ClasspathXmlApplicationContext,并将AnnotationConfigApplicationContext作为父上下文。但是我发现AnnotationConfigApplicationContext中定义的bean不能很好地处理ClasspathXmlApplicationContext中定义的bean。因此,我无论如何都要删除ClasspathXmlApplicationContex
AnnotationConfigApplicationContext
和ClasspathXmlApplicationContext
,并将AnnotationConfigApplicationContext
作为父上下文。但是我发现AnnotationConfigApplicationContext
中定义的bean不能很好地处理ClasspathXmlApplicationContext
中定义的bean。因此,我无论如何都要删除ClasspathXmlApplicationContext
,让我的应用程序只使用AnnotationConfigApplicationContext
问题是,我不知道如何完全替换
。我可以使用AnnotationConfigApplicationContext.scan(…)
轻松地进行包扫描,但似乎无法在AnnotationConfigApplicationContext
中添加include/exclude模式
有什么想法吗?看起来该类并没有提供现成的排除/包含过滤器。在内部,该类使用的实例扫描注释,其中提供了方法
addExcludeFilter
和addIncludeFilter
。不幸的是,该字段是private
,并且没有getter方法,因此您不能只编写扩展AnnotationConfigApplicationContext
并添加include和exclude方法的实现。相反,您可能需要从AnnotationConfigApplicationContext
复制代码,并添加缺少的方法:
public void addExcludeFilter(TypeFilter excludeFilter)
{
this.scanner.addExcludeFilter(excludeFilter);
}
public void addIncludeFilter(TypeFilter includeFilter)
{
this.scanner.addIncludeFilter(includeFilter);
}
也来看看