在创建javabean时执行代码

时间:2012-03-26 09:27:06

标签: java java1.4

每次实例化javabean时,我都想执行一段代码,这会在bean本身中创建一个变量。我正在使用java 1.4

3 个答案:

答案 0 :(得分:1)

我认为您正在描述一个构造函数,但是请注意,您不创建变量,而是为它们赋值(使用静态类型语言)

答案 1 :(得分:1)

显而易见的解决方案是更改bean的构造函数以执行该代码。如果类当前只有默认(no-args)构造函数,则添加一个。

构造函数需要是一个符合JavaBeans约定的无参数构造函数。但是如果初始化取决于某些属性的值,则可以始终将其放入setter中;例如:

public class MyBean {
    private boolean initialized;
    private String prop1, prop2;

    /* Add getters here */

    public void setProp1(String prop1) {
        this.prop1 = prop1;
        initWhenReady();
    }

    public void setProp2(String prop2) {
        this.prop2 = prop2;
        initWhenReady();
    }

    private void initWhenReady() {
        if (prop1 != null && prop2 != null && !initialized) {
            /* do initialization */
            initialized = true;
        }
    }
}

值得注意的是,某些bean框架提供了更好的方法。例如,Spring的InitializingBean接口提供了一个回调方法,当所有bean实例都已创建并连线时,该方法被调用(一次)。这是一个放置依赖于多个bean属性的初始化的好地方。

答案 2 :(得分:1)

请更具描述性。
服务器中bean的用途是什么?
你可以简单地在bean的构造函数中实例化它们

public class MyBean implements Serializable {
private String var;
MyBean(){
 //    enter code here for intialization
 //eg. var="hi";
}