Il servizio chiama chiamate classe Dao su cui è necessario applicare l'aspetto di registrazione (annotativo). Mi chiedo in che modo gli aspetti di vengano effettivamente applicati.In che modo gli aspetti Spring funzionano internamente?
Come da mia conoscenza al momento dell'iniezione DAO in Oggetto servizio, la molla rileva che esiste un aspetto (in questo caso la registrazione) è configurato per DAO, quindi inietta l'oggetto proxy anziché l'oggetto obiettivo effettivo. Ora, quando viene effettuata una chiamata effettiva a qualsiasi metodo all'interno di DAO, il proxy applica gli aspetti e quindi chiama l'oggetto target effettivo . È corretto ? Anche io credo che questo si chiami Run time weaving.
D'altra parte lo stesso può essere fatto con la tessitura del tempo di caricamento (con configurazione javaagent) dove la manipolazione del codice byte viene eseguita per le classi su cui è necessario applicare gli aspetti. Quindi il proxy non entra in immagine qui.
Si prega di correggere me se ho torto in quanto questo è il fondamento per tutti i moduli molla?
Credo che il tempo di caricamento della tessitura sia migliore in termini di prestazioni poiché non ci sarebbe un sovraccarico delle prestazioni nel decidere se il proxy debba essere iniettato in base alla configurazione dell'aspetto, come nel caso dell'intreccio del tempo di esecuzione. Sì, in tempo di caricamento, l'avvio del server di tessitura richiederà un po 'più di tempo, ma va bene come attività una tantum –
Le prestazioni potrebbero essere migliori in termini di tempo di caricamento (o più precisamente di tessitura a tempo di compilazione). Migliore sarebbe verificare attraverso un test di carico) ma ci sono altre aree che potresti voler considerare come le modifiche nel sistema di build.Avresti incluso questo passaggio prima che i tuoi artefatti vengano generati. –
Solo una citazione utile - "* Tutti i problemi nell'informatica possono essere risolti con un altro livello di riferimento indiretto, tranne ovviamente per il problema di troppe indirette. *" - David Wheeler – smwikipedia