注意第一個ApplicationContext已加載的web.xml
一部分;這在下面提到。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>META-INF/spring/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>myOwn-controller</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>META-INF/spring/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
下面的代碼也會嘗試創建一個以上的applicationContext。
private static final ApplicationContext context =
new ClassPathXmlApplicationContext("beans.xml");
見differencebeans.xml
和applicationContext.xml
如果appliationContext.xml
下<META-INF/spring/>
之間
,並與<import resource="beans.xml"/>
那麼這個appliationContext.xml
被加載beans.xml
同一位置的appliationContext.xml
META-INF/spring
下宣佈。
where as;在代碼中;如果它被宣佈像下面
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
這是在WEB-INF/classes
或月食src/main/resources
望beans.xml中。
[如果你有src/main/resources
那麼它可能在創建WAR被放置在WEB-INF/classes
。加入beans.xml
]所以完全二文件擡頭。
我已經加入classpath中查找在applicationContext.xml
進口像下面
<import resource="classpath*:beans.xml" />
,同時解決了這個問題,並在Java代碼中刪除的行ClassPathXmlApplicationContext("beans.xml")
,所以會有隻有一個ApplicationContext中加載。
如何加載上下文? –