2011-12-25 2 views
16

Я новичок в программировании на JSP и сервере. До сих пор я работаю с сервлетами и классами Java. Я разделяю свое приложение (в соответствии с моделью MVC) с помощью классов java. Я хотел бы знать разницу между java beans и java-классами. И в каком сценарии я могу использовать Java-компонент вместо класса java. Любое полезное объяснение или полезные ссылки?разница между java bean и классом java?

ответ

27

Java, боб это просто класс, который соответствует некоторым конвенциям:

  • свойств, которые могут быть доступны добытчиками (и сеттерами, если эти свойства не только для чтения)
  • без аргументов открытого конструктора
  • сериализуемым

СПЯ EL и теги разработаны вокруг этих конвенций. Большинство из них не нуждаются во всех этих конвенциях. свойства, доступные геттерам, являются наиболее важными из этих конвенций. Например, выражение

${foo.bar.name} 

отображает имя панели foo bean. foo - это компонент, который должен находиться в контексте страницы, запроса, сеанса или приложения. И это выражение вызовет getBar() на этом компоненте, а затем getName() на объект, возвращаемый getBar().

+0

Необходимо использовать сериализуемое сериализуемое, чтобы считаться компонентом? – Wronski

+2

@Wronski в строгом определении, да: https://docs.oracle.com/javase/tutorial/javabeans/advanced/persistence.html. Но, как я уже сказал, многие структуры полагаются на соглашения JavaBean, которые должны соблюдаться, но это не значит, что они должны уважать их всех. Например, доступ к объекту с использованием JSP EL не будет прерываться, если объект не является сериализуемым. –

2

Спецификация JavaBeans определяет компоненты типа JavaBeans как «многоразовые программные компоненты». Компонент - это простой Java Bean Class Java, который относится к определенным соглашениям о наименовании, построении и поведении методов. Соблюдение этих соглашений позволяет использовать, повторно использовать, заменять и подключать Java Beans для инструментов разработки. Бобы должны быть «Serializable». Чтобы сохранить и восстановить экземпляры этого класса.

Смежные вопросы