Teknologian jakaminen

SpringAOP:n sudenkuopat

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Lisää kuvan kuvaus tähän
Useita yleisiä ilmoitustyyppejä ja niiden perustoimintoja AOP:ssa:

  • @Before: Ennakkoilmoitus, suoritetaan ennen kohdemenetelmän suorittamista.
  • @After: Jälkiilmoitus suoritetaan menetelmän suoritustuloksesta (mukaan lukien poikkeukset) riippumatta, kun kohdemenetelmä on suoritettu.
  • @AfterReturning: Ilmoitus palautuksen jälkeen, suoritetaan sen jälkeen, kun kohdemetodi päättyy normaalisti, mutta sitä ei suoriteta, jos menetelmä tekee poikkeuksen.
  • @AfterThrowing: Poikkeusilmoitus, joka suoritetaan, kun kohdemenetelmä heittää poikkeuksen.
  • @Around: Surround-ilmoitus, voit suorittaa mukautettuja toimintoja ennen kohdemenetelmän suorittamista ja sen jälkeen ja voit jopa päättää, haluatko jatkaa kohdemenetelmän suorittamista.

Ero AOP-suoritusmääräyksen välillä Spring4 ja Spring5

AOP:n täytäntöönpanomääräys keväällä4

  • Normaali suoritusjärjestys:
    1. @Ennen (ennakkoilmoitus)
    2. kohdemenetelmän suoritus
    3. @After (lähetysilmoitus)
    4. @AfterReturning (ilmoitus paluun jälkeen)
  • Poikkeuksen suoritusjärjestys:
    1. @Ennen (ennakkoilmoitus)
    2. Kohdemenetelmän suoritus (heittää poikkeus)
    3. @After (lähetysilmoitus)
    4. @After Throwing (poikkeusilmoitus)

Jos tilaääniilmoitus (@Around) on määritetty, surround-ilmoituksen esikäsittely suoritetaan ennen @Beforea, ja tilaääniilmoituksen jälkikäsittely suoritetaan myös ennen @After, @AfterReturning ja @AfterThrowing.

AOP:n täytäntöönpanomääräys keväällä5

Keväällä 5 AOP:n suoritusjärjestykseen on tehty joitain muutoksia, jotka näkyvät pääasiassa @AfterReturningin ja @After:n suoritusjärjestyksessä:

  • Normaali suoritusjärjestys:
    1. @Ennen (ennakkoilmoitus)
    2. kohdemenetelmän suoritus
    3. @AfterReturning (ilmoitus paluun jälkeen)
    4. @After (lähetysilmoitus)
  • Poikkeuksen suoritusjärjestys:
    1. @Ennen (ennakkoilmoitus)
    2. Kohdemenetelmän suoritus (heittää poikkeus)
    3. @After Throwing (poikkeusilmoitus)
    4. @After (lähetysilmoitus)

Jos noin-ilmoitus (@Around) on määritetty, noin-ilmoituksen suoritusjärjestys on silti suorittaa sen esikäsittely ensin, sitten kohdemenetelmän suoritus, sitten muut ilmoitukset (@AfterReturning, @AfterThrowing, @After) ja lopuksi ympäröivä Ilmoitusten jälkikäsittely.