问题标签 [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.
spring - ComponentScan 和 Autowired 不适用于依赖 Spring 项目?
我有两个项目 A 和 B。两个项目都是用 Maven 构建的,项目 A 对项目 B 有 Maven 依赖项。两个项目都有一个带有 @Configuration 注释的类,我在其中定义了 @Beans。
我在项目 A 中有 bean,来自两个项目。如果我在同一项目中定义的 bean 的项目 A 中使用 @Autowired 注释,则自动装配工作。但是,如果我在项目 B 的一个 bean 的项目 A 中使用 @Autowired 注释,我会得到一个异常。
这是什么意思?如何自动装配项目 B 中定义的项目 A 中的 bean?
java - 使用属性的 Spring 组件扫描不适用于多个基础包
我想读取一个变量,该变量保留要从属性文件中扫描的包名称:
这不适用于
也不与
知道如何从一个属性中读取多个基本包吗?
java - Spring @ComponentScan 注释不起作用
我有带有包布局的 Spring Boot 应用程序示例:
如果放置,我的集成测试无法运行无法找到 ItemRepository bean
但如果我把
诀窍在哪里?
规格 说:
可以指定 basePackageClasses() 或 basePackages()(或其别名 value())来定义要扫描的特定包。如果未定义特定的包,则会从声明此注解的类的包中进行扫描。
spring - Spring Web 应用启动 - @ComponentScan - 应用上下文和 Web 上下文
我们的 Spring MVC Web 应用程序正在尝试遵循推荐的样式。它使用 AppContext( ContextLoaderListener
) 来存储 DAO 和服务。它使用 WebAppContext ( DispatcherServlet
) 来存储控制器。
DAO 对象同时进入AppContext和 WebAppContext。我不明白为什么。
AppContext 配置应该加载除控制器(以及将代码表加载到 ServletContext 中的类)之外的所有内容:
并且 Web 部件应该只加载控制器:
(上面的类在一个单独的包中,它是'blah'的兄弟;没有进行自我扫描)。
当然,控制器引用 DAO 对象。在 Controller 中,那些 DAO 对象是@Autowired
.
我的期望是这些@Autowired
DAO 对象是从 AppContext 中检索的,而不是第二次创建,而是放置在 WebAppContext 中。但我认为它们是第二次被创造出来的。例如,此行在日志中出现两次,一次用于 AppContext,一次用于 WebAppContext:
我错过了什么吗?
就好像根上下文和 Web 上下文之间的父子关系丢失了。
spring - 如何在 Spring XML 配置中指定对两个不同的包执行组件扫描?
我在 Spring MVC 中很新,我有以下问题。
在我正在处理的应用程序中,我将 2 个控制器类声明到两个不同的包中。
所以我试图在我的 XML 配置中指定必须由组件扫描设置扫描的第二个包。
因此,如果我只有这个设置可以正常工作(但我只扫描一个包):
但是如果我尝试指定必须扫描两个不同的包,这样:
Eclipse 在第二个组件扫描设置标签上给我错误:
问题是什么?如何正确指定我必须扫描两个不同的包?我错过了什么?
java - 组件扫描找不到@Repository
我的课程看起来像这样:AbstractDAO
DAOImpl
应用程序上下文test.xml
测试类
这段代码不应该能够自动连接我的 itemDAO 吗?
当我运行我的测试时,它会抛出一个异常说
你能告诉我我错过了什么吗?我唯一能想到的是,由于我的测试在 src/test/java 中,我的 application-context-test.xml 在 src/test/resources 中,而我的 dao 在 src/main/java 中。也许组件扫描扫描在错误的地方?
java - 如何在春季从组件扫描注释中排除测试文件夹
我有一个用于制作的 XML 文件和一个用于测试的 java conf 文件
在 Conf.java 中,我有一个 ClassA 的 bean 减速,我在测试中使用它作为
在我拥有的 xml 中<context:component-scan base-package="com.xx.*" />
,问题在于此扫描也在扫描测试文件夹并识别出我有 2 个 ClassA 减速,一个在 XML 中,一个在 Conf.java 文件中。
是否可以排除对测试文件夹的扫描?
java - Spring Boot 组件扫描包含单个类
我正在使用 spring 组件扫描来自动检测 bean:
问题是我希望扫描所有班级,com.org.x
但我希望单独扫描一个com.org.y.SomeService.class
班级com.org.y
我怎样才能做到这一点?
除了使用上下文扫描之外,我如何创建这个 bean 并注入应用程序上下文?
spring - 组件扫描不扫描子包
我遇到了一个奇怪的问题。我的印象是,如果指定了顶级包进行扫描,组件扫描会递归地扫描子包。
我的存储库和实体是项目的 Maven 依赖项。它们位于包名 com.foo.bar.xyz 下,我的应用程序配置位于包 com.foo.bar 下。当我写@ComponentScan(basePackages = "com.foo.bar")
时,@EnableJpaRepositories
它会给出一个错误,即找不到存储库 bean。
但是,当我指定一个顶级存储库包时@EnableJpaRepositories(basePackages = com.foo.bar.xyz)
,连同上面的组件扫描,它检测到存储库就好了。
现在发生这种情况仅仅是因为存储库和实体被注入为 Maven 依赖项吗?那么组件扫描的递归部分,是扫描子包还是子目录呢?
spring-boot - 从组件扫描中排除 @SpringBootApplication
我有两个类标记为@SpringBootApplication
一个目录下:
和
@SpringBootApplication
annotation 包含@ComponentScan
注解和@EnableAutoConfiguration
注解。因此,这些类中的每一个都将另一个视为@Configuration
bean。如何在不FirstSpringBoodApplication
使用配置文件的情况下从组件扫描中排除?SecondSpringBootApplication