разница между Java-бином и Java-классом? - PullRequest
17 голосов
/ 25 декабря 2011

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

Ответы [ 2 ]

27 голосов
/ 25 декабря 2011

Java-бин - это просто класс, соответствующий некоторым соглашениям:

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

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

${foo.bar.name}

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

3 голосов
/ 16 января 2012

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

...