Sono nuovo alla programmazione JSP e lato server. Fino ad ora sto lavorando con Servlets e classi java. Sto segregando la mia applicazione (come per il modello MVC) con l'aiuto delle classi java. Mi piacerebbe sapere la differenza tra i bean java e le classi java. E in quale scenario posso usare un bean java invece di una classe java. Qualche spiegazione utile o link utili?differenza tra java bean e java class?
fagiolirisposta
Un Java è solo una classe che si conforma ad alcune convenzioni:
- proprietà che possono essere accessibili da getter (e setter se queste proprietà non sono di sola lettura)
- no-arg costruttore pubblico
- serializable
Il JSP EL e tag sono progettati intorno a tali convenzioni. Molti di loro non hanno bisogno che tutte queste convenzioni siano rispettate. le proprietà disponibili dai getter sono le più importanti di queste convenzioni. Ad esempio, l'espressione
${foo.bar.name}
visualizza il nome della barra del foo bean. foo è un bean che deve trovarsi nella pagina, nella richiesta, nella sessione o nel contesto dell'applicazione. E questa espressione chiamerà getBar()
su questo bean e quindi getName()
sull'oggetto restituito da getBar()
.
La specifica JavaBeans definisce i componenti di tipo JavaBeans come "componenti software riutilizzabili". Un componente è una semplice Java Bean Class Java rispetta alcune convenzioni riguardo la denominazione dei metodi, la costruzione e il comportamento. L'aderenza a queste convenzioni consente di utilizzare, riutilizzare, sostituire e connettere Java Beans per gli strumenti di sviluppo. I bean devono essere "Serializable
" Per salvare e ripristinare istanze di questa classe.
È necessario implementare serializzabile per essere considerato un bean? – Wronski
@Wronski nella definizione più rigida, sì: https://docs.oracle.com/javase/tutorial/javabeans/advanced/persistence.html. Ma come ho detto, molti framework si basano su convenzioni JavaBean da rispettare, ma ciò non significa che devono rispettarli tutti. Ad esempio, l'accesso a una proprietà dell'oggetto utilizzando la JSP EL non avrà esito negativo se l'oggetto non è serializzabile. –