Я хотел бы выполнить кусок кода каждый раз, когда создается экземпляр javabean, который создает переменную в самом компоненте. Я использую Java 1.4Выполнение кода при создании javabean
ответ
Пожалуйста, будьте более наглядными.
какой целью является bean for in server?
вы можете просто создать экземпляр их в конструкторе компонента
public class MyBean implements Serializable {
private String var;
MyBean(){
// enter code here for intialization
//eg. var="hi";
}
Мне было интересно, почему мой конструктор не работает; Кажется, я забыл, что дело должно быть идентичным тому, что указано в имени компонента. Ваш пример вернул меня в нужное русло. благодаря – Andreas
Я думаю, что вы описываете Конструктора, однако обратите внимание, что вы не создавать переменные, но присваивать им значения (в статических типизированных языках)
очевидное решение изменить бина конструктор для выполнения этого кода. Или добавьте его, если только класс имеет конструктор по умолчанию (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-компонента.
Вы должны поместить свой код в конструкторе компонента. –