简体   繁体   中英

Spring FileSystemXmlApplicationContext getBeanDefinitionNames returns empty array

I have an active profile problem. Decided to look in debug mode on my context
(profile indepenent contexts works in such way to in my case -
getBeanDefinitionNames returns empty array).

new FileSystemXmlApplicationContext with mentioned file works without exceptions in code fragment mode.

Code

new FileSystemXmlApplicationContext(
            "D:\\Projects\\opti\dao\\src\\main\\resources\\contexts\\" +
"\\profiles\\test.xml")

This context with

getBeanDefinitionNames()

returns empty array.

D:\\Projects\\opti\\dao\\src\\main\\resources\\contexts\\profiles\\test.xml

<?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-4.2.xsd
http://www.springframework.org/schema/context     http://www.springframework.org/schema/context/spring-context.xsd">
<beans profile="test">
    <context:property-placeholder properties-ref="properties" ignore-resource-not-found="false"/>
    <bean id="properties" lazy-init="false"
              class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath*:properties/test-database.properties</value>
            </list>
        </property>
    </bean>
</beans>
</beans>

Spring 4.2.5

D:\\Projects\\opti\\dao\\src\\main\\resources\\properties\\test-database.properties

connection.driverClassName=org.hsqldb.jdbc.JDBCDriver
connection.url=jdbc:hsqldb:mem:test
connection.userName=sa
connection.password=

For use beans of a specific profile you should start the jvm with -Dspring.profiles.active=test, or setting spring.profiles.active=test as env variable System.setProperties(props) could be a way for configure it.

I hope that this can help you

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM