相关疑难解决方法(0)

如何使用@ComponentScan注释扫描多个路径?

我正在使用Spring 3.1并使用@Configuration@ComponentScan属性引导应用程序.

实际开始是完成的

new AnnotationConfigApplicationContext(MyRootConfigurationClass.class);
Run Code Online (Sandbox Code Playgroud)

此Configuration类使用注释

@Configuration
@ComponentScan("com.my.package")
public class MyRootConfigurationClass
Run Code Online (Sandbox Code Playgroud)

这很好用.但是我想更具体地说明我扫描的软件包,所以我试过了.

@Configuration
@ComponentScan("com.my.package.first,com.my.package.second")
public class MyRootConfigurationClass
Run Code Online (Sandbox Code Playgroud)

但是,这会失败,并告诉我无法找到使用@Component注释指定的组件.

做我正在做的事情的正确方法是什么?

谢谢

java spring annotations

76
推荐指数
5
解决办法
14万
查看次数

Spring XML文件配置层次结构帮助/解释

当我第一次开始学习Spring时,在applicationContext.xml文件中配置了一些东西.然后当我开始专门阅读更新版本的spring时,他们都在单独的XML文件中完成了配置,例如myapp-servlet-xml,myapp-security.xml,myapp-service.xml等.在web.xml文件中配置contextConfigLocation.因此,例如,我一直关注的代码就是它的contextConfigLocation:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/myapp-servlet.xml
        /WEB-INF/myapp-data.xml
    </param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

无论如何,最近我遇到了一个配置问题(StackOverflow的帮助人员帮助我弄清楚),这是由于这种分离.这些书中的示例没有applicationContext.xml文件,稍后当我尝试向应用程序添加自动扫描和注释时,这会导致问题.我尝试将所有内容移动到applicationContext.xml中并取消其他文件并解决了问题.没有其他改变,我只是将所有内容都放在applicationContext.xml中.

因此,这与其他人的评论一起使我有理解,即使您没有创建applicationContext.xml,它仍然被使用,并且它是某种配置层次结构的顶级.我希望其他人可以向我解释这一切是如何运作的,因为我没有在任何地方遇到任何解释.

因此,例如,如果我将某些上下文:组件扫描标记放入applicationContext.xml下面的配置文件中,则可能导致某些类无法扫描.那种性质的东西.我不明白优先级和必须去哪里确定应用程序的广泛性等等.如果有人能够清楚地解释它或指向我解释它的资源我会非常感激,谢谢.希望我所要求的是有道理的.

spring

41
推荐指数
1
解决办法
4万
查看次数

使用@ComponentScan或<context:component-scan />只有一个类

我正在维护一个包含两组主程序包的项目,该项目使用的是Spring和Spring MVC,其中一个程序包包含多个控制器,并使用XML configuration(<context:component-scan />)进行扫描.

问题是在另一个包中有一个类(未扫描),我需要扫描这个类,但只需要这个类,而不是包中的其他类.我现在无法改变它的包装,因为它现在风险太大了.

那么有没有办法使用注释或XML 来做到这一点?

spring spring-mvc component-scan

27
推荐指数
3
解决办法
3万
查看次数

将包放在<context:component-scan base-package =""/>中

我在src /文件夹中,例如多个包com.banking.controller,com.banking.dao,com.banking.service.我如何提供它们

<context:component-scan base-package=""/>
Run Code Online (Sandbox Code Playgroud)

每次使用相应的包名称进行上下文组件扫描时,是否必须单独添加包?

spring

1
推荐指数
1
解决办法
7235
查看次数

标签 统计

spring ×4

annotations ×1

component-scan ×1

java ×1

spring-mvc ×1