Spring, a singletony

0

Witam,
Jak wiaomo w Springu występują adnotacje umożliwiające zarejestrowanie komponentu.

a) @Component (nieokreślony bean springowy, poniższe adnotacje to też komponenty)
b) @Controller (jako kontroler w Spring MVC)
c) @Repository (do opisu DAO)
d) @Service (do opisu usługi biznesowje)

Czy domyślnie każdy bean oznaczony tego typu adnotacją jest singletonem?

Pozdrawiam,

0
NiebieskiFlaming napisał(a):

Czy domyślnie każdy bean oznaczony tego typu adnotacją jest singletonem?

Tak.

0

Tak, chociaż ja osobiście zastanowiłbym sie nad używaniem @Named jeśli nie potrzebujesz niczego wiecej niż zwykłego singletonu. Bo JSR to jednak JSR ;)

0

@Shalom: a to nie jest trochę tak, że taki @named("nazwa") znaczy dokładnie to samo co @Component("nazwa")?

Zgadzam się, że generalnie JSR jest fajne. :)

0

Znaczy, z tą różnicą że taki projekt z serwisami/komponentami @Named mógłbyś odpalić nagle np. za pomocą Guice zamiast Springa bez zmian w kodzie ;) Analogicznie jak ze wstrzykiwaniem za pomocą @Inject a nie @Autowired

0

Ciekawa sugestia.

Czy ten 100% singletonizmu Springa jest na 100% bezpieczny? W takim EJB np. uzywa sie zwykle puli bestanowych obiektow. Na 1 rzut oka wydaje sie to bezpieczniejsze z punktu pracy wielu watkow.

0

Nie myl singletonów/named z CDI z EJB. EJB to jest dużo bardziej skomplikowana technologia. Rzecz w tym, że w 95% projektów wcale nie jest ci to potrzebne ;) A nawet jak jest to dziś bardziej popularne są jedna Webservices.

0

Po co w EJB jest pula bezstanowych obiektów to do dzisiaj nie wiem...
Czy singletony w Spring są bezpieczne?...dopóki nie trzymasz w nich stanu to tak

@Shalom dlaczego nie można porównać Bean'a CDI z beanem EJB aktualnie w obu tych rozwiązaniach są identyczne możliwości....możliwe, że w niedalekiej przyszłości zostanie tylo CDI na JEE

0

o_O No właśnie nie są identyczne mozliwości. EJB daje ci beany message driven, stateless, stateful, dodatkowo różne scope (np. session), ma też pule obiektów ;]

0
  1. Zgadza się dalej MDB są w EJB,
  2. stateless, stateful to w CDI singleton i session scope
  3. Pule obiektów w EJB są ale po co

1 użytkowników online, w tym zalogowanych: 0, gości: 1