2012-03-26 3 views
0

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

+1

Вы должны поместить свой код в конструкторе компонента. –

ответ

1

Пожалуйста, будьте более наглядными.
какой целью является bean for in server?
вы можете просто создать экземпляр их в конструкторе компонента

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

Мне было интересно, почему мой конструктор не работает; Кажется, я забыл, что дело должно быть идентичным тому, что указано в имени компонента. Ваш пример вернул меня в нужное русло. благодаря – Andreas

1

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

1

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

Конструктор должен быть конструктором no-args для соответствия соглашениям 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; 
     } 
    } 
} 

Стоит отметить, что некоторые бобы структура обеспечивает лучший способ сделать это. Например, интерфейс Spring InitializingBean предоставляет метод обратного вызова, который вызывается (один раз), когда все экземпляры bean были созданы и подключены. Это хорошее место для инициализации, которая зависит от нескольких свойств bean-компонента.

+0

Если вы добавляете конструктор с args, это все еще javabean? – chance

+0

@chance Nof согласно [соглашениям] (http://en.wikipedia.org/wiki/JavaBeans), но вы также можете добавить конструктор no-args. – Jesper