Cieľom je oboznámiť sa s rôznymi bean scopes. Dokumentácia je dostupná na spring docs .
- 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
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í:
- načíta z aktuálneho aplikačného kontextu (ApplicationContext) všetky beany,
- vytvorí reťazec obsahujúci hodnoty atribútu name jednotlivých bean vhodne oddelených (napr. “\n”),
- počká 500ms,
- znovu načíta všetky beany,
- do vytvoreného reťazca znova pridá hodnoty atribútu name jednotlivých bean
- vráti vytvorený reťazec
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.
Maven test - mvn test
Maven build - mvn clean compile package