tag:blogger.com,1999:blog-6093194341069655033.post6941921635724124280..comments2023-08-19T09:24:34.277+02:00Comments on W świecie nowoczesnego IT: Bieżący kontekst Spring'a w aplikacji JSFMariusz Lipińskihttp://www.blogger.com/profile/11337463238256141270noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-6093194341069655033.post-64907535667375395072007-12-09T14:45:00.000+01:002007-12-09T14:45:00.000+01:00Moja odpowiedz nawiązuje do tematu artykułu, który...Moja odpowiedz nawiązuje do tematu artykułu, który to artykuł zresztą znajduje się w grupie tematycznie związanych z technologią JSF (oraz mówi głównie o wstrzykiwaniu ziaren zarządzanych), więc chyba odpowiedz jest jak najbardziej na miejscu :). Jeślibym trafił na ten artykuł w grupie "Spring" pewnie zaproponowałbym jakieś rozwiązanie niezależne od docelowej technologi, przykładowo AOP. Zauważ że pierwszy komentarz też jest ściśle związany z JSF. Nawiasem mówiąc nie zauważyłem że poruszyłeś już wspomniany przeze mnie temat w poprzednim artykule :). <BR/><BR/>Przy okazji, wspomniane rozwiązanie z filtrami jest bardzo ciekawe :)<BR/><BR/>Pozdrawiam,Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-57113959571864045392007-12-09T13:13:00.000+01:002007-12-09T13:13:00.000+01:00OK,i jak skorzystać z tego np. w filtrze serwletow...OK,<BR/><BR/>i jak skorzystać z tego np. w filtrze serwletowym? To o czym piszesz rozwiązuje chyba jednak inny problem.Mariusz Lipińskihttps://www.blogger.com/profile/11337463238256141270noreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-51542234137460311532007-12-07T15:31:00.000+01:002007-12-07T15:31:00.000+01:00Witam,Za bardzo kombinujecie. Spring udostępnia va...Witam,<BR/><BR/>Za bardzo kombinujecie. Spring udostępnia variable resolver, który rozwiązuje powyższy problem. Wystarczy go dodać do faces-config.xml<BR/><BR/>(variable-resolver)<BR/>org.springframework.web.jsf.DelegatingVariableResolver (/variable-resolver)<BR/><BR/>Dzięki czemu można wstrzykiwać beany zarządzane przez Springa tak samo jak komponenty zarządzane przez JSF. Przykład:<BR/><BR/>(managed-property)<BR/>(property-name)locationGroupManager(/property-name)<BR/>(value)#{locationGroupManager}(/value)<BR/>(/managed-property)<BR/><BR/>locationGroupManager - Jest komponentem zarządzanym przez springa.<BR/><BR/>Pozdrawiam,Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-70809953164217732402007-12-05T16:28:00.000+01:002007-12-05T16:28:00.000+01:00Jeszcze jedna możliwość - gdybyście kiedykolwiek p...Jeszcze jedna możliwość - gdybyście kiedykolwiek potrzebowali użyć ziaren Spring'a w filtrach dla serwletów to koniecznie przyjrzyjcie się klasie org.springframework.web.filter.DelegatingFilterProxy. Dobry przykład pod adresem <A HREF="http://forum.springframework.org/showthread.php?p=42415" REL="nofollow">http://forum.springframework.org/showthread.php?p=42415</A>.Mariusz Lipińskihttps://www.blogger.com/profile/11337463238256141270noreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-53796746316014927732007-11-28T16:59:00.000+01:002007-11-28T16:59:00.000+01:00Dzięki,ortograf poprawiony. Dzięki za info Waldek,...Dzięki,<BR/><BR/>ortograf poprawiony. Dzięki za info Waldek, rzeczywiście ciekawa funkcjonalność.Mariusz Lipińskihttps://www.blogger.com/profile/11337463238256141270noreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-7250107597257151482007-11-28T12:52:00.000+01:002007-11-28T12:52:00.000+01:00Bieżący przez żBieżący przez żAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-72879625157667816042007-11-26T14:31:00.000+01:002007-11-26T14:31:00.000+01:00Cześć,To co napisaliście to zadziała, ale jest IMH...Cześć,<BR/><BR/>To co napisaliście to zadziała, ale jest IMHO trochę nieładne. Szkoda też rezygnować z możliwości konfigurowania obiektów i całej pozostałej 'maszynerii', które daje Spring.<BR/><BR/>Od Spring 2.0 jest taka ciekawa funkcjonalność, która może się przydać w sytuacjach, gdy cyklem życia obiektu nie zarządza Spring. Klasyczny przykład takiej sytuacji podawany przez ludzi ze Spring-a to ORM, ale nie ograniczałbym się tylko do tego.<BR/>Ta funkcjonalność to AOP (a dokładniej super eleganckie wykorzystywanie AspectJ przez Spring-a), adnotacja @Configurable oraz atrybut 'abstract' (badz 'lazy-init') przy definicji bean'ów w kontekście aplikacyjnym.<BR/><BR/>Tak w skrócie: Ten obiekt 'niezarządzany przez Spring-a' powinien być oznaczony adnotacją @Configurable. Następnie, w trakcie działania poprzez pointcut AOP jest wyłapywany moment inicjalizacji takiego bean-a (inicjalizacji w ogóle, a nie przez Springa - np. poprzez operator 'new', przez ORM albo - jak tu - przez JSF), a następnie uruchamia się aspekt, który bierze konfigurację tego bean'a (czytaną z kontekstu aplikacyjnego) i konfiguruje ten nowo utworzony obiekt. W ten sposób można skonfigurować zarówno atrybuty, jak i wstrzelić zależności do tego 'niezarzadzanego' obiektu. Ciekawe jest to, że można uruchomić aspekt zarówno po wywołaniu konstruktora, jak i przed (przed - gdyby się chciało z wewnątrz konstruktora odwoływać do atrybutów obiektu).<BR/><BR/>Moim zdaniem fajna rzecz.<BR/><BR/><A HREF="http://static.springframework.org/spring/docs/2.5.x/reference/aop.html#aop-atconfigurable" REL="nofollow">Link do dokumentacji Spring</A><BR/><BR/>Pozdrawiam,<BR/>Waldek KotWaldek Kothttps://www.blogger.com/profile/09958129070315028420noreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-16608465231511829752007-11-22T21:35:00.000+01:002007-11-22T21:35:00.000+01:00Wielkie dzięki,to jest właśnie najpiękniejsze w bl...Wielkie dzięki,<BR/><BR/>to jest właśnie najpiękniejsze w blogowaniu - jeśli coś robisz nie optymalnie to jest duża szansa że ktoś wskaże ci właściwą/lepszą drogę.Mariusz Lipińskihttps://www.blogger.com/profile/11337463238256141270noreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-34304372428942554242007-11-22T20:45:00.000+01:002007-11-22T20:45:00.000+01:00Szybciej, latwiej, bez rzutowania: WebApplicationC...Szybciej, latwiej, bez rzutowania: <BR/>WebApplicationContext applicationContext = FacesContextUtils.getWebApplicationContext(FacesContext.<BR/>getCurrentInstance());Unknownhttps://www.blogger.com/profile/01579044539647829736noreply@blogger.com