2011-08-09 34 views
0

我想在我的Spring IoC应用程序上下文中获得一个子对象并为其设置一个值。我怎样才能做到这一点?设置子bean上的值

下面是代码相当于:

// The constructor here instantiates the correct child object 
MyContainerBean container = new MyContainerBean(); 
container.getChild().setValue(someValue); 
+0

你问是否可以通过应用程序上下文注入'someValue'? – Jeremy

+0

在什么情况下?弹簧?还有别的吗?你几乎没有提供任何人可以用来理解你的问题的信息。 –

+0

@Jim - 是的,在Spring应用程序上下文中。 –

回答

2

你的意思

<bean id="container" class="MyContainerBean"> 
    <property name="child"> 
     <bean class="Child"> 
      <property name="value" value="someValue"/> 
     </bean> 
    </property> 
</bean> 

编辑:根据你的回答,你的问题是你有违反控制反转。对象不会创建自己的依赖关系。他们允许他们被注射。在这种情况下,使用XML配置可以做的最好的做法可能是创建容器,将其注入到某个对象中,然后让该对象进行所需的更改。您也可以使用Java-based configuration根据需要创建和配置容器bean。

+0

这有点像我正在寻找的东西。区别在于我无法在bean中实例化Child。 MyContainer的默认构造函数实例化Child。然后,我想获取MyContainer实例化的Child对象并为其设置一个值。 –

+0

是什么阻止你使用Spring来实例化孩子? – Jeremy

+0

父类本身构造子类并为子类的构造函数提供它自己的默认值。我不想干涉这部分过程。 –

0

如果家长实例化孩子,并且您无法更改该值,则将该值注入父级,然后让父级父母在适当的时候将其注入孩子。如果在创建父级时未注明要注入的值,则必须更改设计。