gpt4 book ai didi

java - 执行上下文 :component-scan programatic way?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:08 28 4
gpt4 key购买 nike

我混合使用 AnnotationConfigApplicationContextClasspathXmlApplicationContext目前,制作AnnotationConfigApplicationContext作为父上下文。但是我发现在 AnnotationConfigApplicationContext 中定义的 beans不能很好地处理 ClasspathXmlApplicationContext 中定义的 beans .所以我想放弃 ClasspathXmlApplicationContext无论如何,让我的应用程序使用 AnnotationConfigApplicationContext仅。

问题是,我不知道如何替换<context:component-scan>完全。我可以使用 AnnotationConfigApplicationContext.scan(...) 轻松进行包裹扫描, 但似乎没有办法在 AnnotationConfigApplicationContext 中添加包含/排除模式.

有什么想法吗?

最佳答案

它看起来不像 AnnotationConfigApplicationContext 类提供开箱即用的排除/包含过滤器。该类在内部使用 ClassPathBeanDefinitionScanner 的实例扫描提供方法 addExcludeFilteraddIncludeFilter 的注释。不幸的是,该字段是 private 并且没有 getter 方法,因此您不能只编写一个扩展 AnnotationConfigApplicationContext 的实现并添加 include 和 exclude 方法。相反,您可能必须从 AnnotationConfigApplicationContext 复制代码并添加缺少的方法:

public void addExcludeFilter(TypeFilter excludeFilter) 
{
this.scanner.addExcludeFilter(excludeFilter);
}

public void addIncludeFilter(TypeFilter includeFilter)
{
this.scanner.addIncludeFilter(includeFilter);
}

关于java - 执行上下文 :component-scan programatic way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5575470/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com