hua*_*n68 1 java spring dependency-injection
我有一个动作类,该类将有一个BOC对象,将填充Spring Dependency Injection.下面显示了示例代码:
public class ActionCls {
private BOC theBoc = null;
/*** theBoc getter / setter ***/
}
Run Code Online (Sandbox Code Playgroud)
如果我想调用thefunc属于构造函数BOC内部的成员函数ActionCls,如下所示:
public class ActionCls {
private BOC theBoc = null;
ActionCls() {
theBoc.thefunc();
}
}
Run Code Online (Sandbox Code Playgroud)
将抛出运行时错误,表示theBoc为null.我确实尝试init-method在这样的弹簧配置中使用:
<bean id="theBoc" class="com.huahsin68.BOC" init-method="thefunc"></bean>
无论如何这没有用,因为即使thefunc首先theBoc被调用,但是只有在ActionCls构造函数之后调用setter .这是一种调用theBocsetter 1st然后只调用ActionCls构造函数的方法吗?所以这theBoc不是null我可以调用thefunc.
在调用构造函数之前,您不能期望在类上调用getter或setter.你想要实现的目标是不可能的.您可以更好地创建一个参数化构造函数,在其中使用constuctor-argActionCls bean上的param 使用某个参数初始化theBoc ,然后调用该方法:
public class ActionCls {
private BOC theBoc = null;
ActionCls(BOC theBoc) {
this.theBoc = theBoc
theBoc.thefunc();
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样定义你的构造函数arg:
<bean id="actionCls" class="foo.bar.ActionCls">
<constructor-arg ref="boc"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2542 次 |
| 最近记录: |