问题标签 [component-scan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
398 浏览

spring - spring如何扫描指定包下的所有类?

我正在考虑使用反射,弹簧扫描所有类及其注释,方法。但我听说使用反射无法通过包名获取类详细信息。那么spring怎么扫描指定包下的类呢?

0 投票
0 回答
3110 浏览

java - ... 中的字段属性需要类型为 ... 的 bean,但无法找到

我有以下项目结构:
在此处输入图像描述

应用配置:

应用程序属性

我的休息控制器

当我启动应用程序时,我看到:

****************************** 应用程序无法启动


描述:

nsd.MyRestController 中的字段属性需要一个无法找到的“configuration.ApplicationProperties”类型的 bean。

行动:

考虑在你的配置中定义一个“configuration.ApplicationProperties”类型的bean。

我不明白为什么。ComponentScan 在配置类中提供。

如何解决这个问题?

更新

如果将 ApplicationProperties 移动到nsd包 - 上下文正确,但我仍然不明白为什么它不能从旧包中工作

0 投票
1 回答
772 浏览

java - 如何使用@ComponentScan 扫描当前包和其他包?

如果我只写

Spring 将扫描当前包及以下。

如果我写

我可以隐式指定当前包以及一些显式包吗?

像这样的东西

0 投票
3 回答
4082 浏览

java - 如何从@ComponentScan 包中获取接口列表

我想实现类似于 Spring Data 的东西。

开发人员可以定义一些接口,在接口上添加自定义注解来标记它们,(我的代码将为接口创建代理实例)并通过@Autowire 将它们用于必要的服务。

在春季初始化期间,我需要获取所有接口的列表(正确注释)<为接口创建动态代理并将它们注入必要的地方。

代理创建,创建的bean注入很好。现在的问题:

如何找到所有接口的列表?

它们可以放在任何包中(甚至可以放在单独的 jar 中)并具有任何名称。扫描类路径中存在的所有类需要太多时间。

我找到了问题,但它需要基本包才能启动。

尝试了基于反射的解决方案,但它再次需要基础包,或者如果从根目录开始,则需要大量时间来扫描所有可用的类。

因此,我需要 Spring 扫描的基本包的完整列表,以在包中找到我的接口(必须快得多)。

该信息肯定在 SpringContext 中可用。我试图调试并查看 basePackages[] 是如何初始化的,但是有很多私有类/方法用于初始化,我只是看不到如何从 ApplicationContext 正确访问 basePackages。

0 投票
0 回答
34 浏览

java - 有没有办法知道什么配置类创建了bean?

我想知道 Spring 中是否有办法知道什么配置触发了特定 bean 的创建?所以情况是这样的:有一些@Configuration被标记的类,其中一些可能也被注解了@ComponentScan注解。如何确定哪些配置触发了特定 bean 的创建?我的意思是触发处理@Component注释,只有这种情况。感谢您提前提出任何想法!

0 投票
0 回答
231 浏览

xml - 如果在 spring-config 的 servlet-context 中创建了 bean,则不会调用拦截器。在 Spring 框架中

我在servlet上下文而不是spring-web.xml中添加了代码,那个时间拦截器没有被调用,但是当我在spring-web.xml中添加它时它调用了..没有得到原因。有没有人能说出原因。

Web.xml

spring-beans.xml

spring-web.xml

0 投票
1 回答
2345 浏览

java - ComponentScan 是如何工作的?

@ComponentScan将为您提供包(或/ )@Component中带有注释的所有类的列表。为此,我想他们使用反射来枚举包中的所有类并找到带有该注释的类。@Service@Repository

但是,根据StackOverflow 的其他答案,由于工作方式的原因,您无法可靠地枚举包中的所有类ClassLoader。那么@ComponentScan看似如何做到这一点呢?

0 投票
3 回答
4758 浏览

java - Spring - @ComponentScan 未检测到 bean

我是春天的新手。我正在尝试使用 ComponentScan。我有一个带有 @Component 注释的字符串变量的简单 bean。尝试将 @Configuration 与 java 类而不是 xml 文件一起使用。当我尝试从我的主类访问 bean 时,它显示“未找到 bean”

项目目录结构

StudentTest.java

配置文件

应用程序.java

pom.xml

项目属性

当我运行 App.java 类时,它给了我以下错误。

0 投票
3 回答
2865 浏览

java - Spring ComponentScan 包结构

我的应用程序包含以下类:
SpringMainApplication:

应该用于自动装配字段的接口:

另一个将所述接口用于字段的类:

但该字段不会自动装配:

com.foo.appl.pack.ImplementationClass 中的字段 autoClass 需要找不到类型为“com.foo.bar.ClassToAutowire”的 bean。

行动:

考虑在你的配置中定义一个 'com.foo.bar.ClassToAutowire' 类型的 bean。

我猜 Spring 不喜欢我的包结构?

是否@SpringBootApplication必须在根包中并且所有组件都必须在子包中?如果是这样,我该如何解决我的“问题”,因为ClassToAutowire它来自导入的 JAR。

当更改basePackgecom.foo.bar应用程序启动时,但计划的方法将不会运行。

谢谢

0 投票
0 回答
341 浏览

java - Spring 组件扫描不适用于 jar 中具有相似名称的包

我正在加载一些包的 jar 上运行组件扫描。包 com.path.package 工作正常并且正在加载,但是组件扫描没有加载 com.path.package.addon 中的 bean

在问这个问题之前,我确实看过几个问题。他们似乎都没有给出我所看到的问题的答案。我的日志上没有错误,当我尝试从 applicationContext 获取这个 bean 时,我只是得到了找不到错误 bean。任何帮助,将不胜感激。