Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 28258|Odpověď: 2

[Zdroj] Praktický provoz: AOP ve Spring Bootu dynamicky mění hodnotu parametru požadavku

[Kopírovat odkaz]
Zveřejněno 06.11.2021 12:15:55 | | | |
Požadavky: Projekt musí dynamicky upravovat parametry požadavků, přiřadit hodnoty parametrům požadavku podle aktuálních oprávnění uživatele, před vstupem parametrů do metody kontroleru musí být provedena úprava parametrů požadavku a když řadič vyvolá servisní vrstvu, parametry požadavku mohou být použity jako podmínky pro dotazování a úpravu dat. Existují dva případy požadavků na parametry:

  • Pro uživatele s vysokými oprávněními můžete použít skutečné požadované hodnoty parametrů
  • U lidí s pouze částečnými oprávněními jsou hodnoty parametrů požadavku dynamicky upravovány na základě informací vázaných na aktuálního uživatele


Nejdřív jsem to chtěl implementovat přes filtr, ale bylo příliš složité serializovat a deserializovat obsah požadavků, a také to vyžadovalo hodně logického úsudku a ztráty výkonu. Naštěstí Spring poskytuje AOP funkcionalitu orientovanou na obličeje, kterou lze implementovat jednoduchým kódem.

Nejprve by projekt maven pom.xml potřeboval představit balíček spring-boot-starter-aop, a to následovně:

Jakmile je balíček představen, můžeme využít funkci AOP, přes@Aspectanotace.

Aspect podporuje 5 typů notací oznámení:

@Before: Předběžné oznámení, které se provádí před vykonáním metody

@After: Post-notification, provedeno po spuštění metody

@AfterRunning: Vrátí oznámení, které se vykoná poté, co metoda vrátí výsledek

@AfterThrowing: Oznámení o výjimce poté, co metoda vyhodí výjimku

@Around: Oznámení kolem systému, kolem provádění metod

Vytvořte Request.java generickou třídu obalu požadavků:

Vytvořte novou UserInfo.java požadovat specifickou datovou třídu:

Pokud má aktuální hlavička požadavku appid, hodnota parametru požadavku appId bude upravena, jinak parametr požadavku nebude upraven, kód je následující:

Vytvořte nový řadič HomeController a přidejte rozhraní s parametrem požadavku obsahujícím Request<UserInfo>, kód je následující:

V případě testování bez hlavičky požadavku appId je parametr požadavku appId skutečnou hodnotou a nebyl upraven, jak ukazuje následující obrázek:



Pokud se pokusíte přidat hlavičku požadavku appId, uvidíte, že parametr požadavku appId byl úspěšně upraven, jak ukazuje následující obrázek:



Nakonec přiložte zdrojový kód:Přihlášení k hypertextovému odkazu je viditelné.





Předchozí:Použijte iPerf3 k testování rychlosti komunikace v síti zařízení
Další:Instalace softwaru iDRAC Service Module na VMware ESXi
 Pronajímatel| Zveřejněno 06.11.2021 12:21:32 |
Ve Spring AOP se obchodní logika zaměřuje pouze na samotný podnik, odděluje logování, statistiky výkonu, bezpečnostní kontrolu, zpracování transakcí, zpracování výjimek atd. od kódu obchodní logiky, a oddělením těchto chování doufáme, že je budeme schopni oddělit do metod, které neřídí obchodní logiku, a poté tato chování změnit, aniž bychom ovlivnili kód obchodní logiky.
Zveřejněno 15.03.2023 11:11:04 |
zsdfghjkvbjnm
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com