我正在重新配置webapp。我想将调度程序servlet中的所有内容移到ContextLoaderListener中。 (这是由于安全配置的变化超出了本问题的范围)
问题1,如果我有多个应用程序上下文xml文件,它们的加载顺序是否重要?例如,是否需要在指定DAO和服务bean的xml文件之前加载包含context:component-scan的xml文件?
问题2,(或者这有点?)我如何指定加载* _applicationContext.xml的顺序,假设应该在应该加载的B_applicationContext.xml之前加载A_applicationContext.xml在C_applicationContext.xml之前
我的web.xml如下:
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>AssessmentDelivery</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AssessmentDelivery</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/*_applicationContext.xml</param-value>
</context-param>
<!-- security filter -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
答案 0 :(得分:3)
一些建议:
这些天考虑通过Javaconfig进行Spring的配置。
回答问题1和2非常重要,您了解以下内容:
Application Context
,其中存在由Spring创建和管理的所有bean。现在考虑一下Application Context
,应该从两个&#39;来创建它。应用程序上下文,通常它们被提到&#39;在文档中ServletApplicationContext
和RootApplicationContext
的方式
@Controller
和@Bean
关于基础设施,例如ViewResolver
等。@Service
和@Repositories
以及@Bean
关于基础设施,例如DataSource
等< / LI>
了解以下内容非常重要:
ServletApplicationContext
- &gt; RootApplicationContext
@Controller
需要@Service
)。因此,它反映了Web
方可以访问server
方。一旦这样说,以下是不可能
RootApplicationContext
- &gt; ServletApplicationContext
很久以前我没有使用web.xml
但是
DispatcherServlet
+ contextConfigLocation
(通过<init-param>
)代表ServletApplicationContext
ContextLoaderListener
+ contextConfigLocation
(通过<context-param>
)代表RootApplicationContext
通过以下方式声明bean无关紧要:
XML
JavaConfig
@Controller
等 Spring管理bean的创建顺序。因此,无论如何声明.xml
文件(在您的情况下)(关于订单)。