Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring注释在库jar中不起作用_Java_Spring_Spring Mvc_Spring Annotations - Fatal编程技术网

Java Spring注释在库jar中不起作用

Java Spring注释在库jar中不起作用,java,spring,spring-mvc,spring-annotations,Java,Spring,Spring Mvc,Spring Annotations,简而言之,我们从一个SpringMVC项目开始。将其命名为proj1,因此该包是com.foo.proj1。后来,我们在同一个代码库上建立了第二个项目,因此我们有了com.foo.proj1和com.foo.proj2。然后,我们将公共代码重构到一个库中,如com.foo.libJAR中的代码,以便在两个web应用程序中使用。它作为常规Maven依赖项包含: <dependency> <groupId>com.foo</groupId>

简而言之,我们从一个SpringMVC项目开始。将其命名为proj1,因此该包是
com.foo.proj1
。后来,我们在同一个代码库上建立了第二个项目,因此我们有了
com.foo.proj1
com.foo.proj2
。然后,我们将公共代码重构到一个库中,如
com.foo.lib
JAR中的代码,以便在两个web应用程序中使用。它作为常规Maven依赖项包含:

    <dependency>
        <groupId>com.foo</groupId>
        <artifactId>foo-lib</artifactId>
        <version>0.1</version>
    </dependency>
库中有一个web.xml,如下所示(由于stackoverflow不喜欢格式,我省略了附带的web app标记):


org.springframework.web.context.ContextLoaderListener
上下文配置位置
/WEB-INF/application-config.xml
库应用程序-config.xml(再次省略最外层的bean标记):


我发现组件扫描(不幸的是)不仅仅取决于基本包值。库需要什么样的Spring配置,如何从使用它的SpringMVC项目中引用它


非常感谢您的帮助

尝试将其添加到web.xml中

<context-param>
    <param-name>contextClass</param-name>
    <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>

上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext

您确定您的上下文配置吗?库项目有自己的上下文配置吗?有,我将用它更新问题…您能尝试删除jar的应用程序上下文吗?所以你只有一个ear/WAR,我曾经尝试过,我认为只有主应用程序应该包含配置信息。基本上,它应该强制组件扫描,然后呢?您使用的是哪个spring版本?
<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/application-config.xml
    </param-value>
</context-param>
<context:annotation-config/>
<context:component-scan base-package="com.foo"/>
<context-param>
    <param-name>contextClass</param-name>
    <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>