Ho lavorato di recente su poche applicazioni web / servizi web REST (Spring IoC / MVC / Data JPA, ecc.) e di solito seguono lo stesso schema: Classi di controller - > Classi di servizio (che hanno il numero di "utilità" / classi di logica di business autowired) - > Spring Data Repositories.
Praticamente tutte le classi sopra elencate sono singleton di primavera, che a volte mi sembra che faccia il codice e alcune funzioni all'interno di una classe più sporca (ad esempio perché non posso avere uno stato in una classe, ho bisogno di passare parecchio parametri tra i metodi, e non mi piace avere più di 1-2 parametri, anche se a volte ne sono necessari).
Mi chiedevo come superare questo problema nel grande tipo di applicazione (ad esempio l'impresa).
- È prassi comune utilizzare classi non gestite da Spring nell'applicazione Spring? In tal caso, come si fa a passare delle dipendenze (quelle che normalmente verrebbero autorizzate)? Se per esempio utilizzo l'iniezione del costruttore, allora ho bisogno di autorizzare tutte le dipendenze necessarie nella classe che crea l'oggetto e volevo evitarlo. Inoltre, non voglio davvero scherzare con il tempo di caricamento tessere ecc. Per convertire i bean in oggetti non Spring
- L'utilizzo dei fagioli con scope prototipo è una buona soluzione? L'unica cosa è che ho bisogno di usare i proxy dell'ambito di AOP (o il metodo di iniezione, ecc.) Per assicurarmi di ottenere una nuova istanza per qualsiasi bean che viene autowired in singleton in primo luogo. Si tratta di un'opzione "pulita" e affidabile - ovvero è certo che non ci saranno problemi di concorrenza e posso comunque autorizzare qualsiasi singleton in quelle classi senza problemi?
Se qualcuno che ha lavorato su un sistema di grandi dimensioni, che in realtà è riuscito a mantenere la struttura non "gonfia" e pulita, ha qualche raccomandazione? Forse ci sono alcuni schemi che non sono a conoscenza e potrebbero usare?
Qualsiasi aiuto apprezzato.