问题标签 [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.
java - “cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素‘context:component-scan’的声明。”
我的 spring-servlet.xml 中出现以下错误
匹配的通配符是严格的,但找不到元素“context:component-scan”的声明。
我的 spring-servlet.xml 有以下内容:
我下载了所有依赖项
spring - 使用 spring 组件扫描时 Alfresco personService.createPerson 错误
几周前,我开发了一个基于 Alfresco 3.4.14 的 AMP。在那个模块中,我创建了一些定制服务。其中一项服务用于管理用户,并提供了一种创建新用户的方法:
所有服务都在露天上下文文件中定义:
一切正常。我能够创建用户,执行我的其他定制服务......直到这里完美!!!!!!!!!该应用程序运行正常。
几天前,我们决定开始使用spring注解,而不是定义上下文中的所有bean:
在上下文文件中,使用 spring 组件扫描:
所有服务都正常工作,应用程序看起来也正常工作。我们很高兴,因为我们可以使用注释解耦我们的应用程序。
BUTTTTTTTTTTTT,当我尝试通过资源管理器或通过应用程序创建用户时,我得到了同样的错误:Failed to create Person due to error: xxxxxxx beforeCreateNode: use PersonService to create person
java - 将包添加到组件扫描
我有一个带有 Spring 容器的项目。假设这个项目被调用my-common-library
并使用 namespace my.common
。它扫描此命名空间中的所有组件,common-context.xml
如下所示
除其他事项外,此扫描检测使用 注释的类@MyComponent
。
现在我想尽可能充分地重用这个项目。假设我开始了一个my-client
在 namespace 中使用的新项目my.client
。my-client
主要由带有注释的组件组成@MyComponent
。
在理想的世界中,我只需添加依赖项my-common-library
,所有@MyComponent
s 都将被扫描和注册。唯一的问题是新的命名空间对原来的my-common-library
.
我知道的一种解决方案是添加一个common-context.xml
看起来my-client
像的更新
这肯定会奏效,但似乎很脆弱。有没有更优雅的解决方案?
java - @Autowired 不适用于 resteasy
我知道之前有人问过这个问题,但是我已经根据提供的所有答案检查了这段代码,但仍然看不出它有什么问题......我的@Autowired 字段根本没有被注入(即它们为空),在这里是我的设置:
- 雄猫 7
- 轻松3.0.8
- Spring框架4.0.6
- 爪哇 8
pom.xml(相关依赖)
web.xml
应用程序上下文.xml
最后是我的 Java 类:
我也尝试用 @Component 注释类本身,但它没有帮助。
提前致谢!
java - 组件扫描无法检测到接口bean?
这是我在 spring mvc 项目(3.2.8 RELEASE)中的 root-context.xml 的一部分。
我得到了一些像下面这样的结构。
我的源代码中有 2 个注释。一个@Repository
在我的 DaoImpl 类上,另一个@Service
在我的服务接口上。
我用 JUnit(4.7) 运行它。DAOImpl 的东西像我预期的那样工作正常,但服务不起作用。我知道我可以使用@Service
接口,但不知何故这种情况不能。
错误信息在这里
有没有@Service
在界面上使用组件扫描 xml 设置和注释的好示例,以便我可以与我的比较?
感谢您的帮助:D
java - @ComponentScan 和 @Autowired 无法从特定包注入
我知道关于这个问题的许多类似问题,但是,没有一个解决了我的问题。我有一个 Spring REST 项目,我正在使用 Spring Tool Suite (STS) 3.5.1 RELEASE。
应用类:
存储库类:
Service 类(Autowire 在这里无法注入 actorRepository):
REST 服务(Autowired 无法注入 actorService - 我认为这是因为 ActorService 未能注入 ActorRepository):
我认为它发生的原因是@ComponentScan 没有扫描存储库包,因为在 STS 中,Spring 类的 Java 图标右上角有一个小 S。这出现在所有应该被扫描的类上(除了存储库包中的任何东西之外的组件)。将存储库类移动到 rest 包会使它们被扫描(不知道为什么!)。
这是我尝试使用 Spring Boot App 运行项目时遇到的问题的一部分。
java - @ComponentScan basePackageClasses 有命名约定吗?
Spring 的 @ComponentScan 提供了一个类型安全的basePackageClasses
属性 - 使用起来似乎是一件好事,尤其是在我正在处理的项目中重命名包的情况并不少见。文档说:
考虑在每个包中创建一个特殊的无操作标记类或接口,除了被此属性引用之外没有其他用途。
...但没有提供有关此类名称的进一步指导。我想知道这方面是否有任何约定。package-info.java
已经存在于所有包中(由 Checkstyle 强制执行) - 本来希望重用它,但遗憾的是 Java 不允许使用此名称的类。
(如果不存在这样的标准,我可能会考虑PackageInfo
,或类似的标准BasePackage
,PackageMarker
但如果有的话,更愿意遵循约定。)
spring - spring 组件扫描功能如何确保您的网站安全不受影响?
假设我有一个工作的 spring mvc web 应用程序,其中包括以下内容,
显然这个项目依赖于一些第三个开源库,包括 spring 框架等,
我如何确保这些库的供应商永远不会发布新版本的 jars,其中秘密(或意外)包含一个带@Controller
注释的类,例如com.my_company.my_prj.my_controller_pkg.Format_C_Drive_Controller.java
,和 BOOM!,我的网站新版本将为任何人打开一扇门格式化我的C盘在服务器上。
有没有办法让spring组件扫描只从我完全控制的一些预定义的jar文件或类路径目录中加载bean?
谢谢
spring - Grails:如何使用 bean build DSL 指定 Spring 组件扫描排除项
我有一些使用注释声明的 Spring 组件,我需要在 Grails 应用程序中使用它们。
我需要做的是从基础包中扫描组件,同时排除包内的一些组件,使用 resources.groovy 中的 BeanBuilder DSL。这就是我使用 XML 配置实现这一点的方法:
在文档(http://grails.org/doc/latest/guide/spring.html#theBeanBuilderDSLExplained,使用 Spring 命名空间部分)中有一些关于如何在 BeanBuilder 中使用 Spring 命名空间的提示。例如,这有效地导入了 my.base.package 中的所有组件:
但我不知道如何context:exclude-element
使用 BeanBuilder DSL 语法通过嵌套指定排除过滤器。我尝试了以下方法,但无济于事:
谁能指出我正确的方向?我还尝试将 xml 放入一个文件中,然后通过 导入它importBeans
,这确实有效,但我真的很想直接使用 DSL 语法。
java - 如何在spring中配置控制器而不在xml中进行组件扫描?
我必须使用 spring mvc 为银行设计一个非常大规模的项目。我已经选择使用 XML 配置。我关心的是限制服务器的启动时间。将有大约 2000 个控制器。
我已经使用组件扫描来扫描@Controller
. 它工作得很好。但是,问题是当我从 XML 中删除组件扫描并在 XML 中使用 bean 配置手动添加控制器 bean 时,它没有在 IOC 容器中创建控制器实例。并给我 404 not found 错误。那么如何在没有 XML 组件扫描的情况下配置控制器。
以下是我的代码示例。有什么帮助吗?
servlet-context.xml
根上下文.xml
ContactSetupController.java
ContactSetupDao.java