Что такое Java-компонент?
Возможный дубликат:
В чем смысл beans?
Что такое джаваб? Для чего его используют? И какие примеры кода? Я слышал, что он используется для чего-то общего с методами getter и setter? Я довольно смущен тем, что есть java bean и где вы даже обращаетесь к нему. Я искал ее, но не смог найти определенного ответа.
Ответы
Ответ 1
Java Bean - обычный Java-класс, который имеет частные свойства с его общедоступным методом getter и setter.
Java Beans обычно используется как вспомогательный класс.
Пример -
public class User implements java.io.Serializable {
private String name;
private Integer age;
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public Integer getAge(){
return this.age;
}
public void setAge(Integer age){
this.age = age;
}
}
Реализация Serializable
не является обязательной, но очень полезна, если вы хотите сохранить или перенести Javabeans за пределы памяти Java, например. в жестком диске или в сети.
Места, где используются JavaBeans?
Ответ 2
JavaBeans - многоразовые программные компоненты для Java. Практически это классы, написанные на языке программирования Java, соответствующие определенному соглашению. Они используются для инкапсуляции многих объектов в один объект (bean), так что они могут передаваться как один объект bean, а не как несколько отдельных объектов. JavaBean - это Java-объект, который является сериализуемым, имеет конструктор с 0 аргументами и позволяет получить доступ к свойствам с использованием методов getter и setter.
Преимущества
- A bean получает все преимущества Java "пишите один раз, выполняйте где угодно" парадигму.
- Можно управлять свойствами, событиями и методами bean, которые могут быть открыты для другого приложения.
- Дополнительное программное обеспечение может быть предоставлено для настройки Bean.
- Настройки конфигурации bean могут быть сохранены в постоянном хранилище и могут быть восстановлены позднее.
- A bean может регистрироваться для приема событий от других объектов и может генерировать события, которые ему отправляются.
Недостатки
- Класс с нулевым конструктором подлежит экземпляру в недопустимом состоянии. Если такой класс создается вручную разработчиком (а не автоматически с помощью какой-либо структуры), разработчик может не понимать, что он создал экземпляр класса в недопустимом состоянии. Компилятор не может обнаружить такую проблему, и даже если ее документально подтвержден, theres не гарантирует, что разработчик увидит документацию.
- Чтобы создать геттер для каждого свойства и сеттер для многих, большинства или всех из них, создает огромное количество шаблонов.
Пример:
package beans;
/**
* Class <code>PersonBean</code>.
*/
public class PersonBean implements java.io.Serializable {
private String name;
private boolean deceased;
/** No-arg constructor (takes no arguments). */
public PersonBean() {
}
/**
* Property <code>name</code> (note capitalization) readable/writable.
*/
public String getName() {
return this.name;
}
/**
* Setter for property <code>name</code>.
* @param name
*/
public void setName(final String name) {
this.name = name;
}
/**
* Getter for property "deceased"
* Different syntax for a boolean field (is vs. get)
*/
public boolean isDeceased() {
return this.deceased;
}
/**
* Setter for property <code>deceased</code>.
* @param deceased
*/
public void setDeceased(final boolean deceased) {
this.deceased = deceased;
}
}
обратитесь http://en.wikipedia.org/wiki/JavaBeans
Ответ 3
Ну, API JavaBean определяет ряд соглашений относительно JavaBeans. Согласно Википедии:
Необходимые соглашения заключаются в следующем:
- Класс должен иметь открытый конструктор по умолчанию (без аргумента). Это позволяет легко создавать экземпляры в рамках редактирования и активации.
- Свойства класса должны быть доступны с помощью get, set, is (используется для логических свойств вместо get) и других методов (так называемых методы доступа и методы мутаторов), следуя стандартным именованиям условность. Это позволяет легко автоматизировать проверку и обновление beanсостояния в рамках, многие из которых включают пользовательские редакторы для различные типы свойств. Setters должны принимать только один аргумент.
- Класс должен быть сериализуемым. Это позволяет приложениям и фреймворкам надежно сохранять, сохранять и восстанавливать состояние bean в мода, независимая от виртуальной машины и платформы.
Довольно часто это наиболее распространенные типы классов, которые можно найти в приложении, поскольку они могут использоваться для моделирования используемых данных. Пример такого bean можно увидеть ниже:
public class Person implements Serializable
{
private String name;
private boolean alive;
public Person()
{
// constructor logic...
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public boolean isAlive()
{
return alive;
}
public void setAlive(boolean alive)
{
this.alive = alive;
}
}
Как вы можете видеть, свойства отражаются в геттерах и сеттерах.
НТН
Ответ 4
Если вы говорите о java- beans и НЕ EJB Beans, то вот объяснение...
1. JavaBean имеет конструктор, который не принимает аргументов.
2. JavaBean имеет набор свойств.
3. JavaBean имеет методы доступа (getXxx или isXxx для логических свойств) и методы mutator (setXxx), которые позволяют получить доступ к его базовым свойствам.
Третья точка указывает класс java с частными переменными экземпляра и общедоступным getter, setter.
например:
import java.util.Date;
public class User {
private Date loginDate;
private String name;
private String password;
public User() { }
public Date getLoginDate() {
return loginDate;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public void setLoginDate(Date loginDate) {
this.loginDate = loginDate;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public void delete() {
// code to delete user from database
}
public void update() {
// code to update user in database
}
public static User getUser(String name) {
// code returning a new User object
// populated from the database
}
}