Interes-Group / spring-course-bean-scopes

Simple Maven project with Spring Boot to demonstrate different usages of Spring component scopes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring Course - Bean scopes

Java CI with Maven License MIT Java 1.8

Cieľom je oboznámiť sa s rôznymi bean scopes. Dokumentácia je dostupná na spring docs .

Obsah projektu

  • AbstractBean – Abstraktná trieda , ktorá obsahuje atribút name typu String. V konstriktore nastavuje tento atribút na hodnotu “:”.
  • triedy, dediace od AbstractBean reprezentujúce rôzne použitie scope:
    • SingletonBean
    • PrototypeBean
    • RequestBean
    • SessionBean

Testovanie

Súčasťou projektu je RESTful endpoint pre otestovanie vytvorenia definovných komponentov na základe scope-u. Endpoint je možné zavolať: curl localhost:8080

Endpoint, ktorý pri zavolaní:

  1. načíta z aktuálneho aplikačného kontextu (ApplicationContext) všetky beany,
  2. vytvorí reťazec obsahujúci hodnoty atribútu name jednotlivých bean vhodne oddelených (napr. “\n”),
  3. počká 500ms,
  4. znovu načíta všetky beany,
  5. do vytvoreného reťazca znova pridá hodnoty atribútu name jednotlivých bean
  6. vráti vytvorený reťazec

Očakávané správanie

SingletonBean by mal vždy vrátiť rovnaký názov pri každom volaní – vytvára sa vždy len jedna inštancia.

PrototypeBean by mal pri každom volaní vrátiť rôzne hodnoty, aj v rámci volania – pri každom načítaní z aplikačného kontextu sa vytvorí nová inštancia.

RequestBean by mal pri každom volaní vrátiť rôzne hodnoty, v rámci volania by mali byť rovnaké – vytvára sa nová inštancia pre každé zavolanie endpointu.

SessionBean by mal vždy vrátiť rovnaký názov pri každom volaní – vytvára sa nová inštancia pre každú používateľskú reláciu, keďže v projekte existuje iba jedna používateľská relácia.

Build

Maven test - mvn test

Maven build - mvn clean compile package

About

Simple Maven project with Spring Boot to demonstrate different usages of Spring component scopes.

License:MIT License


Languages

Language:Java 100.0%