Выполнение кода при создании javabean - PullRequest
0 голосов
/ 26 марта 2012

Я хотел бы выполнять кусок кода каждый раз, когда создается экземпляр javabean, который создает переменную в самом бине. Я использую Java 1.4

Ответы [ 3 ]

1 голос
/ 26 марта 2012

Очевидное решение - изменить конструктор компонента для выполнения этого кода.Или добавьте его, если только класс в настоящее время имеет конструктор по умолчанию (без аргументов).

Конструктор должен быть конструктором без аргументов, чтобы соответствовать соглашениям JavaBeans.Но если инициализация зависит от значений некоторых свойств, вы всегда можете вместо этого поместить их в установщики;например:

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-компонента.

1 голос
/ 26 марта 2012

Пожалуйста, будьте более информативны.
Для чего предназначен компонент на сервере?
вы можете просто создать их экземпляр в конструкторе компонента

public class MyBean implements Serializable {
private String var;
MyBean(){
 //    enter code here for intialization
 //eg. var="hi";
}
1 голос
/ 26 марта 2012

Я думаю, что вы описываете конструктор, однако учтите, что вы не создаете переменные, а присваиваете им значения (в статических типизированных языках)

...