导入spring上下文时为零bean

时间:2015-04-24 15:26:45

标签: java spring spring-mvc applicationcontext

我尝试从WEB-INF / lib /中的jar文件加载spring上下文(在spring-config-client.xml中):

<import resource="classpath*:spring-configuration.xml" />

但是当我尝试使用它时:

ApplicationContext factory = new ClassPathXmlApplicationContext("classpath:spring-config-client.xml");
int k = factory.getBeanDefinitionCount();

k等于0.如何使用spring-config-client.xml中的bean?

当我在spring-config-client.xml中编写bean时,一切都很好,但是我需要来自spring-config-client.xml的bean。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下解决方法:

在您的依赖项目中,创建一个如下所示的配置bean:

   @Configuration
   @ImportResource("classpath:spring-configration.xml")
   public class MyContextConfiguration {

   }

现在,您可以像在任何其他bean中一样在依赖项目的Spring上下文中实例化此配置bean:

<bean id="appWatcherConfig" class="MyContextConfiguration"/>

对我来说很好。

答案 1 :(得分:0)

这取决于您在bean上下文中的配置,如下所示:

<?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:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:lang="http://www.springframework.org/schema/lang" xmlns:security="http://www.springframework.org/schema/security"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.1.xsd   
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.1.xsd   
       http://www.springframework.org/schema/jee 
       http://www.springframework.org/schema/jee/spring-jee-3.1.xsd    
       http://www.springframework.org/schema/lang
       http://www.springframework.org/schema/lang/spring-lang-3.1.xsd
       http://www.springframework.org/schema/security 
       http://www.springframework.org/schema/security/spring-security-3.1.xsd" lazy-init="false">

在spring上下文文件中尝试set:lazy-init =“false”或default-lazy-init =“false”,你必须确保你所做的上下文文件已经尝试加载bean定义。

希望这对你有帮助!