Spring Boot:父/子上下文中的属性

时间:2017-03-15 08:21:32

标签: java spring spring-boot parent-child properties-file

因此,Spring Boot会自动加载application.properties并使其属性可用于ApplicationContext,因此XML-Bean-Definitions可以使用它们。 但是我找不到将这些属性“暴露”给Child-Contexts的方法。我必须在每个Childcontext中为PropertyPlaceholder定义一个Bean,以便从类路径中手动加载application.properties。

有没有办法将属性提供给ChildContext,以便在使用时自动解析它们?我不想在子上下文中加载.properties-File。

基本上我用

创建父子关系
new  SpringApplicationBuilder(Application.class).child(BaseApplication.class).run();

如果我有一个application.properties(在应用程序模块中定义),其属性名为username = XXX,我当然可以在Application-Module中访问此属性。 但是,如果我在Child-Context(BaseApplication)中有一个Beandefinition,那么让我们说:

<bean id="beanB" class="com.example.nsm.BeanB" >
    <constructor-arg index="0" value="${username}"/>
    <constructor-arg index="1" value="${password}"/>
</bean>

属性未解析。我必须使用

从类路径手动加载application.properties
    <bean
    class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:application.properties</value>
        </list>
    </property>
</bean>

然后他们就解决了。

事实上,我不想加载这样的属性。 来自父级的Beandefinitions对于Child是可见的,但属性不是?为什么不?这是故意的吗?如果没有,可以修复吗?

0 个答案:

没有答案