[Seam] Application Scope
Wojtek - 15-03-2007 00:04
[Seam] Application Scope
Mam takiego beana:
@Scope(ScopeType.APPLICATION) @Name("single")
public class SingleComponent {
public SingleComponent()
{
System.out.println("SingleComponent.SingleComponen t()");
}
public void doSth()
{
System.out.println("SingleComponent.doSth()");
}
Użyłem ScopeType.Application, bo chciałem żeby bean utworzył się jeden dla wszystkich wywołań z jakiegokolwiek kontekstu.
W inym beanie sięgam do tego beana w następujący sposób:
@In(create=true)
private SingleComponent single;
Okazuje się jednak że konstruktor SingleComponent() jest wywoływany dwukrotnie, a wydawało mi się że będzie wywoływany tylko raz.
Jak temu zaradzić lub jak z wykorzystaniem Seama utowrzyć komponent który będzie miał tylko jedną instancję w aplikacji?
Z góry dziękuje za pomoc
Pozdrawiam
Wojtek
Bla - 15-03-2007 00:04
A nie możesz użyć wzorca Singletona?
Jacek Laskowski - 15-03-2007 00:04
Wojtek wrote:
> Okazuje się jednak że konstruktor SingleComponent() jest wywoływany > dwukrotnie, a wydawało mi się że będzie wywoływany tylko raz.
Wiesz może kiedy wywoływany jest pierwszy raz? Jaka wersja Seama?
Jacek
-- Jacek Laskowski http://www.jaceklaskowski.pl
Wojtek - 16-03-2007 00:02
Użytkownik "Jacek Laskowski" <jacek@laskowski.net.pl> napisał w wiadomości news:et9gpl$334$3@news.onet.pl... >> Okazuje się jednak że konstruktor SingleComponent() jest wywoływany >> dwukrotnie, a wydawało mi się że będzie wywoływany tylko raz. > > Wiesz może kiedy wywoływany jest pierwszy raz? Jaka wersja Seama? >
Wywoływany jest dwukrotnie w momencie zainicjowania beana w którym jest zmienna odnosząca się do Single Component. Żeby jaśniej to przedstawić:
@Stateful
@Name("dialog")
@Scope(ScopeType.CONVERSATION)
public class DialogBean implements Serializable, Dialog{
@In(create=true)
private SingleComponent single;
......
}
Gdy pierwszy raz odwołam się do komponentu "dialog" (rozpocznę nowy kontekst) to od razu konstruktor jest wywoływany dwa razy (nawet bez korzystania z "single") A Single jak już wspominałem wygląda następująco:
@Scope(ScopeType.APPLICATION) @Name("single") public class SingleComponent {
public SingleComponent(){ System.out.println("SingleComponent.SingleComponen t()"); } public void doSth() { System.out.println("SingleComponent.doSth()"); }
Wersja Seama 1.1.0.GA. Może faktycznie spróbuje skorzystać z nowszej wersji.
Wojtek
Wojtek - 16-03-2007 00:02
Użytkownik "Jacek Laskowski" <jacek@laskowski.net.pl> napisał w wiadomości news:et9gpl$334$3@news.onet.pl... >> Okazuje się jednak że konstruktor SingleComponent() jest wywoływany >> dwukrotnie, a wydawało mi się że będzie wywoływany tylko raz. > > Wiesz może kiedy wywoływany jest pierwszy raz? Jaka wersja Seama? >
Wywoływany jest dwukrotnie w momencie zainicjowania beana w którym jest zmienna odnosząca się do Single Component. Żeby jaśniej to przedstawić:
@Stateful @Name("dialog") @Scope(ScopeType.CONVERSATION) public class DialogBean implements Serializable, Dialog{
@In(create=true) private SingleComponent single; ..... }
Gdy pierwszy raz odwołam się do komponentu "dialog" (rozpocznę nowy kontekst) to od razu konstruktor jest wywoływany dwa razy (nawet bez korzystania z "single") A Single jak już wspominałem wygląda następująco:
@Scope(ScopeType.APPLICATION) @Name("single") public class SingleComponent {
public SingleComponent(){ System.out.println("SingleComponent.SingleComponen t()"); } public void doSth() { System.out.println("SingleComponent.doSth()"); }
Wersja Seama 1.1.0.GA. Może faktycznie spróbuje skorzystać z nowszej wersji i zobacze co będzie.
Pozdrawiam
Wojtek
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle Application Express na Oracle Database 10g Express Edition- wykonalne?
W Database 10g Express Edition jakos nie moge sie doszukac ApplicationBuildera?
probl.z komunikatem "Class definition WORD.APPLICATION is not found" w VFP 6
Problem z instalacja Oracle Application Server 10g
Oracle Application Server polaczenie z baza
Oracle Application Express - uzytkownicy
[Oracle] Logowanie do Application Express
Oracle Application Server
Seam =?ISO-8859-2?Q?modu=B3owo?=
[my sql] przekodowanie bazy
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|