Salve a tutti, mi sono avvicinato da poco alla programmazione Java usando JSF 2.0.
Questa discussione non sarà molto tecnica, vorrei semplicemente avere delle conferme relative alla filosofia che sto utilizzando per la programmazione di interfacce per l'inserimento dati.
Allora, ecco come mi muovo:
1)Creo un DB che verrà utilizzato per l'inserimento ed il recupero dei dati.

2)Costruisco delle semplici classi java che fungono da modello per i risultati delle query che effettuerò nel programma.
Tra queste classi ci sono sempre quelle che modellano i record generici delle tabelle del database con i classici metodi get/set, ad esempio se nel DB ho una tabella con due campi varchar creo una classe java con due attributi String e i 4 metodi get/set in modo tale da poter effettuare query che ritornano dati che possono essere modellati come liste di istanze di queste classi.

3)Costruisco i managed bean che prendono i dati da input e sulla base di questi effettuano le query al DB, il costruttore del generico managed bean ha solo il codice per la connessione al db.
Quindi un generico bean avrà gli attributi che si riferiscono ai dati presi in input, una serie di metodi per effettuare le query e un costruttore con la sola connessione al db.
Qui avrei delle domande più specifiche: non invoco mai il managed bean (con la new) uso semplicemente i metodi che effettuano le query (invocandoli dalle pagine xhtml), ovviamente però se cancello il costruttore il bean non viene caricato, mi domando quindi:
-Chi è che lo istanzia?
-Ci sono altre invocazioni che vengono effettuate "senza consenso"? Ovvero c'è qualcosa che regola il ciclo di vita dei beans?
-E' giusto inserire il codice per la connessione al DB nel costruttore di ogni managed bean?
-i bean sono request scope, ma apparentemente cambiando lo scope non cambia niente nell'applicazione, che scope mi suggerite?

4)Uso pagine xhtml per creare i form che mi serviranno per prendere e inviare i dati verso i managed beans, l'invio ed il prelievo dei dati viene effettuato riferendosi agli attributi (per l'invio) e ai metodi (per la richiesta) dei managed beans.


Spero di essere stato chiaro, in caso contrario fatemi sapere.
grazie a tutti per le dritte.