我有一个Spring3.1/Hibernate3项目,其中应用程序上下文是通过注释类+组件扫描来构建的。当我使用eclipse构建它时,一切正常,但是使用maven构建它似乎忽略了注释(没有注入,服务是空的等)。Maven3不会处理Spring注释?
我们有编译器插件,如下所示:
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
“主”弹簧应用上下文经由ContextLoaderListener的从相关联的网络的项目之一(加载服务/ DAOS等驻留在单独的共项目“)为了避免实例化一个上下文每个Web项目(我们有几个,是人可以质疑,但..),我们使用在本博客中详述的tecnique: http://blog.springsource.org/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/
这是从web的撕开xml实例化上下文:
<listener>
<display-name>ContextLoaderListener</display-name>
<listener- class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beanRefContext.xml</param-value>
</context-param>
<context-param>
<param-name>parentContextKey</param-name>
<param-value>common.context</param-value>
</context-param>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>SpringHibernate</param-value>
</context-param>
BeanRefContext其位于公共项目看起来是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="common.context" class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
<value>appContext.xml</value>
</list>
</constructor-arg>
</bean>
</beans>
而这在原来的起始和注解配置和组件扫描定义普通的ClassPathXmlApplicationContext:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org /schema/context/spring-context-3.0.xsd">
<context:annotation-config/>
<import resource="persistenceContext.xml" />
<import resource="businessContext.xml" />
<context:component-scan base-package="com.XX.supplierportal.common.spring">
<context:exclude-filter type="regex" expression="com.XX.supplierportal.common.spring.*Test.java"/>
</context:component-scan>
<context:component-scan base-package="com.XX.supplierportal.userdirectory.incoming"/>
</beans>
而且如上所述,在eclipse中,所有东西都可以在eclipse中实例化和共享一个包含服务等的common-applicationContext,并在许多web项目之间共享,然后使用maven构建它,但是上下文会变得不稳定充分,但似乎没有阅读注释。
任何人都知道什么是缺失的线索?
它可能来自你的Spring配置。请显示更多代码:) –
当您使用eclipse时,您是否使用java 1.5或1.6。如果你在eclipse中使用1.6,那么如果你在maven中使用1.6,会发生什么? – Ralph