Jarné zavedenie bez webového servera

1. Úvod

Spring Boot je vynikajúci rámec na rýchle vytváranie nových aplikácií Java pre rôzne prípady použitia. Jedným z najpopulárnejších použití je webový server, ktorý využíva jeden z mnohých podporovaných vložených kontajnerov servletov a šablónových nástrojov.

Avšak Spring Boot má množstvo použití, ktoré nevyžadujú webový server: konzolové aplikácie, plánovanie úloh, dávkové alebo streamové spracovanie, aplikácie bez servera a ďalšie.

V tomto tutoriáli sa pozrieme na niekoľko rôznych spôsobov použitia Spring Boot bez webového servera.

2. Používanie závislostí

Najjednoduchší spôsob, ako zabrániť aplikácii Spring Boot v spustení zabudovaného webového servera, je nezahrnúť do našich závislostí štartér webového servera.

To znamená nezahŕňať spring-boot-starter-web závislosť buď v zostavovacom súbore Maven POM alebo Gradle. Namiesto toho by sme chceli použiť viac základných štartér s pružinou závislosť na jej mieste.

Mysli na to je možné, že závislosti Tomcat budú do našej aplikácie zahrnuté ako tranzitívne závislosti. V takom prípade bude možno potrebné vylúčiť knižnicu Tomcat z akejkoľvek závislosti, ktorá ju zahŕňa.

3. Úprava jarnej aplikácie

Ďalším spôsobom, ako zakázať zabudovaný webový server v Spring Boot, je použitie kódu. Môžeme použiť buď SpringApplicationBuilder:

nový SpringApplicationBuilder (MainApplication.class) .web (WebApplicationType.NONE) .run (args);

Alebo môžeme použiť odkaz na SpringApplication:

Aplikácia SpringApplication = nová SpringApplication (MainApplication.class); application.setWebApplicationType (WebApplicationType.NONE); application.run (args);

V každom prípade, máme výhodu v tom, že udržujeme API servletu a kontajnera k dispozícii na ceste triedy. To znamená, že stále môžeme používať knižnice webového servera bez spustenia webového servera. To môže byť užitočné napríklad vtedy, ak ich chceme použiť na písanie testov alebo na použitie ich API v našom vlastnom kóde.

4. Používanie vlastností aplikácie

Použitie kódu na deaktiváciu webového servera je statická možnosť - ovplyvní to našu aplikáciu bez ohľadu na to, kam ju nasadíme. Čo však v prípade, že chceme vytvoriť webový server za konkrétnych okolností?

V tomto prípade môžeme použiť vlastnosti aplikácie Spring:

spring.main.web-application-type = none

Alebo pomocou ekvivalentného YAML:

pružina: hlavná: typ webovej aplikácie: žiadna

Výhodou tohto prístupu je, že môžeme podmienečne povoliť webový server. Pomocou jarných profilov alebo podmienených prvkov môžeme riadiť správanie webového servera v rôznych nasadeniach.

Napríklad by sme mohli mať spustený webový server vo vývoji iba na vystavenie metrík alebo iných koncových bodov Spring, zatiaľ čo z bezpečnostných dôvodov ho ponecháme vo výrobe deaktivovaný.

Všimnite si, že niektoré staršie verzie Spring Boot používali a boolovský majetok pomenovaný webové prostredie na povolenie a zakázanie webového servera. S prijatím tradičných aj reaktívnych kontajnerov v Spring Boot, vlastnosť bola premenovaná a teraz používa enum.

5. Záver

Existuje veľa dôvodov na vytváranie aplikácií Spring Boot bez webového servera. V tomto tutoriáli sme videli niekoľko spôsobov, ako to urobiť. Každá z nich má svoje vlastné pre a proti, preto by sme si mali zvoliť prístup, ktorý najlepšie zodpovedá našim potrebám.


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