Ako získať všetky na jar riadené fazule?

1. Prehľad

V tomto článku preskúmame rôzne techniky zobrazovania všetkých fazúľ spravovaných Springom s nádobou.

2. Kontajner IoC

Fazuľa je základom aplikácie spravovanej jarom; všetky fazule prebývajú v kontajneri IOC, ktorý je zodpovedný za riadenie ich životného cyklu.

Zoznam všetkých fazúľ v tomto kontajneri môžeme získať dvoma spôsobmi:

  1. Pomocou a ListableBeanFactory rozhranie
  2. Používanie pružinového spúšťacieho mechanizmu

3. Používanie ListableBeanFactory Rozhranie

The ListableBeanFactory rozhranie poskytuje getBeanDefinitionNames () metóda ktorý vráti názvy všetkých fazúľ definovaných v tejto továrni. Toto rozhranie je implementované vo všetkých továrňach typu bean, ktoré vopred načítajú svoje definície fazule, aby vymenovali všetky svoje inštancie fazule.

Zoznam všetkých známych pod rozhraní a jeho implementačné triedy nájdete v oficiálnej dokumentácii.

V tomto príklade budeme používať aplikáciu Spring Boot.

Najskôr si vytvoríme jarné bôby. Vytvorme jednoduchý pružinový ovládač FooController:

@Controller verejná trieda FooController {@Autowired private FooService fooService; @RequestMapping (value = "/ displayallbeans") public String getHeaderAndBody (model mapy) {model.put ("hlavička", fooService.getHeader ()); model.put ("správa", fooService.getBody ()); návrat "displayallbeans"; }}

Tento ovládač je závislý na inej jarnej fazuli FooService:

@Service verejná trieda FooService {public String getHeader () {return "Display All Beans"; } public String getBody () {návrat "Toto je vzorová aplikácia, ktorá zobrazuje všetky fazule" + "v kontajneri Spring IoC pomocou rozhrania ListableBeanFactory" + "a Spring Boot Actuators."; }}

Upozorňujeme, že sme tu vytvorili dve rôzne fazule:

  1. fooController
  2. fooService

Pri vykonávaní tejto aplikácie použijeme applicationContext objekt a zavolaj jeho getBeanDefinitionNames () metóda, ktorá vráti všetky fazule v našej applicationContext kontajner:

@SpringBootApplication verejná trieda Aplikácia {súkromná statická ApplicationContext applicationContext; public static void main (String [] args) {applicationContext = SpringApplication.run (Application.class, args); displayAllBeans (); } public static void displayAllBeans () {String [] allBeanNames = applicationContext.getBeanDefinitionNames (); pre (String beanName: allBeanNames) {System.out.println (beanName); }}}

Toto vytlačí všetky fazule z applicationContext kontajner:

fooController fooService // iné fazule

Všimnite si, že spolu s nami definovanými fazuľami tiež zaznamená všetky ostatné fazule, ktoré sú v tomto kontajneri. Kvôli prehľadnosti sme ich tu vynechali, pretože je ich pomerne veľa.

4. Používanie pružinového spúšťacieho mechanizmu

Funkcia Spring Boot Actuator poskytuje koncové body, ktoré sa používajú na sledovanie štatistík našej aplikácie.

Zahŕňa mnoho zabudovaných koncových bodov vrátane /fazuľa. Toto zobrazuje kompletný zoznam všetkých jarných bôbov spravovaných v našej aplikácii. Celý zoznam existujúcich koncových bodov nájdete v oficiálnych dokumentoch.

Teraz iba narazíme na adresu URL //: / fazuľa. Môžeme použiť náš predvolený port servera, ak sme neurčili žiadny samostatný port pre správu. Týmto sa vráti a JSON odpoveď zobrazujúca všetky zrná v rámci jarného kontajnera IoC:

[{"context": "application: 8080", "parent": null, "beans": [{"bean": "fooController", "aliasy": [], "scope": "singleton", "type" : "com.baeldung.displayallbeans.controller.FooController", "resource": "súbor [E: / Workspace / tutorials-master / spring-boot / target /classes/com/baeldung/displayallbeans/controller/FooController.class]" , "dependencies": ["fooService"]}, {"bean": "fooService", "aliasy": [], "scope": "singleton", "type": "com.baeldung.displayallbeans.service.FooService "," resource ":" súbor [E: / Workspace / tutorials-master / spring-boot / target / classes / com / baeldung / displayallbeans / service / FooService.class] "," dependencies ": []}, // ... iné fazule]}]

Samozrejme to tiež pozostáva z mnohých ďalších bôbov, ktoré sa nachádzajú v tej istej nádobe na jar, ale kvôli prehľadnosti sme ich tu vynechali.

Ak chcete preskúmať viac informácií o Spring Boot Actuator, môžete prejsť na hlavnú príručku Spring Boot Actuator.

5. Záver

V tomto článku sme sa dozvedeli, ako zobraziť všetky fazule v a Jarný kontajner IoC použitím ListableBeanFactory rozhranie a Spring Boot Actuator.

The úplná implementácia tohto tutoriálu nájdete na Githube.


$config[zx-auto] not found$config[zx-overlay] not found