Java Spring注释在库jar中不起作用
简而言之,我们从一个SpringMVC项目开始。将其命名为proj1,因此该包是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>
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>