【发布时间】:2011-05-19 00:24:57
【问题描述】:
我的 Spring 应用程序出现问题,我的 @Service 类在应用程序启动时被创建了两次。我知道这是我的配置有问题,因为我以前经历过,但我到底做错了什么?
我在下面布置配置的方式有什么根本错误吗? (我省略了所有我认为不相关的内容)
web.xml:
<servlet>
<servlet-name>myapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myapp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/myapp-config.xml
/WEB-INF/myapp-security.xml
/WEB-INF/myapp-mvc.xml
</param-value>
</context-param>
<listener>
<listener-class>com.myapp.servlet.MyAppContextListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
myapp-servlet.xml
<context:component-scan base-package="com.myapp" annotation-config="true" />
<mvc:annotation-driven />
myapp-config.xml
<context:component-scan base-package="com.myapp" annotation-config="true" />
<context:annotation-config />
【问题讨论】:
-
附注:如果您已经使用
<context:component-scan />,则不需要<context:annotation-config />。非常好的和详细的解释可以在这里找到:Difference between <context:annotation-config> vs <context:component-scan>
标签: spring spring-mvc