Úvod do Bootique

1. Prehľad

Bootique je veľmi ľahký open-source bez kontajnerov Rámec JVM sa zameriaval na budovanie škálovateľných mikroslužieb novej generácie. Je postavený na zabudovanom serveri Jetty a plne podporuje ODDYCH manipulanti s jax-rs.

V tomto článku si ukážeme, ako vytvoriť jednoduchú webovú aplikáciu pomocou Bootique.

2. Maven závislosti

Začnime používať Bootique pridaním nasledujúcej závislosti do pom.xml:

 kompilácia io.bootique.jersey bootique-dres test io.bootique bootique-test 

Avšak Bootique tiež vyžaduje vyhlásenie niekoľkých Kusovník („kusovník“) dovoz. Preto nasledovanie časť je potrebné pridať do pom.xml:

   io.bootique.bom bootique-bom 0,23 pom import 

Najnovšia verzia servera Bootique je k dispozícii v centrálnom úložisku Maven.

Ak chcete vytvoriť priechodnú nádobu, Bootique spolieha sa na maven-shad-plugin. Preto musíme pridať aj nižšiu konfiguráciu:

   org.apache.maven.plugins maven-shad-plugin 

3. Spustenie aplikácie

Najjednoduchší spôsob, ako začať a Bootique aplikácie je vyvolať Bootique‘S exec () metóda z hlavnej metódy:

public class App {public static void main (String [] args) {Bootique.app (args) .autoLoadModules () .exec (); }}

Týmto sa však zabudovaný server nespustí. Po spustení vyššie uvedeného kódu by sa mal zobraziť nasledujúci protokol:

NAME com.baeldung.bootique.App OPTIONS -c yaml_location, --config = yaml_location Určuje umiestnenie konfigurácie YAML, čo môže byť cesta k súboru alebo adresa URL. -h, --help Vytlačí túto správu. -H, --help-config Vypíše informácie o aplikačných moduloch a ich možnostiach konfigurácie. -s, --server Spustí server Jetty.

Nie sú to nič iné ako dostupné programové argumenty, ktoré sú súčasťou balenia Bootique.

Názvy sú samy osebe; na spustenie servera teda musíme prejsť –S alebo –Server a server bude funkčný na serveri predvolený port 8080.

4. Moduly

Bootique aplikácie sa vyrábajú so zbierkami „modulov“. V BootiquePojmom „Modul je knižnica Java, ktorá obsahuje určitý kód“ čo znamená, že každú službu považuje za modul. Používa to Google Guice pre injekciu závislostí.

Aby sme videli, ako to funguje, vytvorme si jedno rozhranie:

verejné rozhranie HelloService {boolean save (); }

Teraz musíme vytvoriť implementáciu:

verejná trieda HelloServiceImpl implementuje HelloService {@Override public boolean save () {return true; }}

Existujú dva spôsoby, ako môžeme modul načítať. Prvým z nich je použitie Guice‘S Modul rozhranie a druhá je pomocou Bootique‘S BQModuleProvider ktorý je tiež známy ako automatické načítanie.

4.1. Guice modul

Tu môžeme použiť Guice‘S Modul rozhranie na väzbu inštancií:

verejná trieda ModuleBinder implementuje modul {@Override public void configure (Binder binder) {binder .bind (HelloService.class) .to (HelloServiceImpl.class); }}

Po definovaní modulu musíme tento vlastný modul namapovať na Bootique inštancia:

Bootique .app (args) .module (modul) .module (ModuleBinder.class) .autoLoadModules () .exec ();

4.2. BQModuleProvider (automatické načítanie)

Tu musíme iba definovať predtým vytvorený spojovač modulov pomocou BQModuleProvider:

public class ModuleProvider implementuje BQModuleProvider {@Override public Module module () {return new ModuleBinder (); }}

Výhodou tejto techniky je, že nepotrebujeme mapovať žiadne informácie o module pomocou Bootique inštancia.

Potrebujeme len vytvoriť súbor v /resources/META-INF/services/io.bootique.BQModuleProvider a napíšte celé meno súboru ModuleProvider vrátane názvu balíka a Bootique o ostatné sa postará:

com.baeldung.bootique.module.ModuleProvider

Teraz môžeme použiť @Inject anotácia na použitie inštancií služby za behu:

@Inject HelloService helloService;

Tu si treba uvedomiť jednu dôležitú vec, že ​​keďže používame BootiqueVlastný DI mechanizmus, ktorý nemusíme používať Guice @ImplementedBy anotácia pre viazanie inštancií služby.

5. Koncový bod REST

Vytváranie koncových bodov REST pomocou rozhrania JAX-RS API je jednoduché:

@Path ("/") verejná trieda IndexController {@GET public String index () {návrat "Dobrý deň, baeldung!"; } @POST public String save () {return "Data Saved!"; }}

Na mapovanie koncových bodov do BootiqueJe vlastný Jersey napríklad musíme definovať a JerseyModule:

Modul module = binder -> JerseyModule .extend (binder) .addResource (IndexController.class);

6. Konfigurácia

Môžeme poskytnúť zabudované alebo vlastné informácie o konfigurácii v súbore vlastností založenom na YAML.

Napríklad, ak chceme aplikáciu spustiť na vlastnom porte a pridať predvolený kontext URI „ahoj“, môžeme použiť nasledujúcu konfiguráciu YAML:

mólo: kontext: / ahoj konektor: port: 10001

Teraz pri spustení aplikácie musíme v konfiguračnom parametri poskytnúť umiestnenie tohto súboru:

--config = / home / baeldung / bootique / config.yml

7. Protokolovanie

Von z krabice Bootique prichádza s bootique-logback modul. Ak chcete použiť tento modul, musíme do súboru pridať nasledujúcu závislosť pom.xml:

 io.bootique.logback bootique-logback 

Tento modul sa dodáva s BootLogger rozhranie môžeme prepísať na implementáciu vlastného protokolovania:

Bootique.app (args) .module (module) .module (ModuleBinder.class) .bootLogger (new BootLogger () {@Override public void trace (Supplier args) {// ...} @Override public void stdout (String args ) {// ...} @Override public void stderr (String args, Throwable thw) {// ...} @Override public void stderr (String args) {// ...}}). AutoLoadModules (). exec ();

Tiež môžeme definovať konfiguračné informácie protokolovania v config.yaml spis:

log: level: warn appenders: - type: file logFormat: '% c {20}:% m% n' file: /path/to/logging/dir/logger.log

8. Testovanie

Na testovanie Bootique prichádza s bootique-test modul. Existujú dva spôsoby, ako môžeme testovať a Bootique žiadosť.

Prvý prístup je „Popredie“ prístup, ktorý umožňuje spustenie všetkých testovacích prípadov na hlavnom testovacom vlákne.

Ten druhý je 'pozadie' prístup, vďaka ktorému sú testovacie prípady spustené v izolovanej oblasti vlákien.

Prostredie „popredia“ je možné inicializovať pomocou BQTestFactory:

@Rule public BQTestFactory bqTestFactory = nový BQTestFactory ();

„Pozadie“ prostredia je možné inicializovať pomocou BQDaemonTestFactory:

@Rule public BQDaemonTestFactory bqDaemonTestFactory = nový BQDaemonTestFactory ();

Keď bude továreň na prostredie pripravená, môžeme na testovanie služieb napísať jednoduché testovacie prípady:

@Test public void givenService_expectBoolen () {BQRuntime runtime = bqTestFactory .app ("- server"). AutoLoadModules () .createRuntime (); Služba HelloService = runtime.getInstance (HelloService.class); assertEquals (true, service.save ()); }

9. Záver

V tomto článku sme si ukázali, ako zostaviť aplikáciu pomocou BootiqueZákladné moduly. Existuje niekoľko ďalších Bootique dostupné moduly ako bootique-jooq, bootique-kotlin, bootique-jobCelý zoznam dostupných modulov je k dispozícii tu.

Celý zdrojový kód je ako vždy k dispozícii na GitHub.


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