2010-06-29 21 views

risposta

9

È una delle caratteristiche "tipiche" come descritto nello Javabeans specification.

Ecco un estratto del capitolo 2.1 Che cos'è un bean?

Fagioli

individuale Java varieranno nella funzionalità che supportano, ma le tipiche caratteristiche unificanti che distinguono un Bean Java sono:

  • Supporto per “introspezione” in modo che uno strumento di creazione può analizzare come un bean funziona
  • Supporto per "personalizzazione" in modo che quando si utilizza un builder dell'applicazione un utente possa personalizzare l'aspetto e il comportamento di un bean.
  • Supporto per "eventi" come una semplice metafora di comunicazione che può essere utilizzata per connettere i bean .
  • Supporto per "proprietà", sia per la personalizzazione che per l'uso programmatico.
  • Supporto per la persistenza, in modo che un bean possa essere personalizzato in un builder dell'applicazione e quindi avere lo stato personalizzato salvato e ricaricato in seguito.

Ed ecco un estratto del capitolo 5.5 Sintesi della Persistenza:

Tutti i fagioli devono supportare sia la serializzazione o esternalizzazione.

In pratica, non è esplicitamente necessario per il suo funzionamento. In generale, funzionerà anche correttamente senza l'implementazione di Serializable. È comunque utile quando vuoi memorizzarli "in chiaro" su harddisk o inviare "plain" via rete. Ad esempio quando si tratta di un bean con scope di sessione che deve essere memorizzato nella sessione HTTP e il server è stato configurato per mantenere e riattivare le sessioni HTTP durante l'arresto/riavvio. In qualsiasi modo, ogni volta che si affronta un NotSerializableException con il nome completo della classe qualificata del bean nel messaggio, allora è sufficiente firmarlo per consentirne l'implementazione Serializable.

+1

E i bean 'ApplicationScoped', dovrebbero implementare un'interfaccia Serializable? –

10

.

Per definizione - un bean Java è esattamente questo, un serializable POJO (plain oggetto vecchio Java), con un costruttore senza argomenti e campi privati ​​con getter/setter.

Problemi correlati