tag:blogger.com,1999:blog-20941681.post4884338843974069390..comments2024-02-13T18:09:44.121+01:00Comments on Jacek Laskowski scala jawnie: Słów kilka o transakcjach w Spring FrameworkAnonymoushttp://www.blogger.com/profile/09734540973692423017noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-20941681.post-12346674031880467522008-03-29T10:29:00.000+01:002008-03-29T10:29:00.000+01:00Jeżeli wgłebic się w dokumentacje Springa lub wpis...Jeżeli wgłebic się w dokumentacje Springa lub wpisy na blogach Spring teamu to jest tam jasno powiedziane:<BR/><BR/>Anotacje są tylko dodatkowym sposobem budowania "blueprint" czyli inforamcji w jakie mamy komponenty, jak są ze sobą połączone i jak są obudowywane...<BR/><BR/>Oprócz anotacji pozostaje jeszcze stary poczciwy XML albo Spring Java Configuration Project.<BR/><BR/>A najpiekniejsze jest to że można robic mix tych konfiguracjimilushttps://www.blogger.com/profile/04255791953013506623noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-56833192950494695802008-03-25T20:52:00.000+01:002008-03-25T20:52:00.000+01:00Panowie,Spring prowadzi do "spagetti xml".Uzywam s...Panowie,<BR/><BR/>Spring prowadzi do "spagetti xml".<BR/>Uzywam spring-a od 2004 i moje pierwsze reakcje byly podobnie entuzjastyczne. Jednak juz w srednich projektach koniguracja springa to dobre 20 plikow, a odkad dodali import zrobila sie z tego niezla makabra. <BR/><BR/>IoC i testowalnosc sa nie do zaprzeczenia, ale spring nie ma modularnosci. Poza tym XML nawet ten z "naming space" to przerost formy nad trescia.<BR/><BR/>Przyszedl czas na cos lzejszego - Guice to odpowiedz!<BR/>oczywiscie w polaczeniu z bibliotekami springa, ale nie z kontenerem.<BR/><BR/><BR/>Btw. Aop w springu jest strasznie kiepskie, ale nie bede sie tu rozwodzil - wyatarczy spojrzec na koszmarny stack trace...Piotr Gabryanczykhttps://www.blogger.com/profile/00316230475482560970noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-91653624877977010552008-03-20T09:33:00.000+01:002008-03-20T09:33:00.000+01:00@popaprany,Z tą anegdotą, to coś chyba nie do końc...@popaprany,<BR/><BR/>Z tą anegdotą, to coś chyba nie do końca. Bo w WebLogic Server implementacja EJB3 bazuje na 10-letniej już implementacji EJB. To co zostało zaimplementowane przy pomocy Spring, to wstrzeliwanie zależności (czyli stosunkowo niewielka część EJB3). Po prostu zdroworozsądkowo było nie wymyślać koła i skorzystać z tego co jest dobre. Zresztą Rod ani Alef nie mają dostępu do kodu źródłowego WLS, a Spring został już dawno wewnątrz BEA uznany za conajmniej równoprawny model programistyczny do EJB. Z tego co mi się udało zaobserwować, to najpierw ludzie z developmentu BEA postanowili użyć Spring jako kontenera aplikacyjnego w ramach przejścia na OSGi (mSA - micro Service Architecture), a potem, gdy mSA trafiło do WLS wręcz bezpośrednio wykorzystano funkcjonalność Spring DI do implementacji EJB3. Swoją drogą to odbyło się to w taki sposób, że BEA i Spring uruchomili projekt Pitchfork, który jest notabene niezależny od kontenera (choć jedyne mi znane w tej chwili implementacje Pitchfork to - produkcyjna - w WLS i - testowa - w Tomcat). W Pitchfork jednym z głównych developerów jest Michael Cheng, jeden z core developerów EJB3 w WLS, zresztą podobnie jak jednym z core developerów Spring-OSGi jest Andy Piper, dawniej architekt kontenera EJB w WLS oraz guru od CORBA i RMI-over-IIOP. A teraz dev lead produktu WebLogic Event Server, w którym za podstawowy model programowania przyjęto... Spring. <BR/>Jak widać sporo tych zależności między Spring a BEA (w obu kierunkach). <BR/><BR/>Szepnę tylko: stay tuned - there's more comming to the theathers near you ;-)<BR/><BR/>Pozdrawiam,<BR/>Waldek KotWaldek Kothttps://www.blogger.com/profile/18016237674528659018noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-63748410866773619312008-03-20T09:18:00.000+01:002008-03-20T09:18:00.000+01:00Cześć,Biorąc pod uwagę nasze przekomarzania, pewni...Cześć,<BR/><BR/>Biorąc pod uwagę nasze przekomarzania, pewnie się tego Jacek spodziewasz, ale oczywiście IMHO linia podziału przebiega między Spring a EJB (dokładnie częścią EJB czyli Session Bean i Message Driven Bean, czyli bez JPA), a NIE między Spring a Java EE. <BR/>Nie widzę też w Springu tego "wiele" na jego poprawne zestawienie (ani też nie widzę tego "bez większego wysiłku umysłowego" w EJB). <BR/>A już w żadnej mierze - o czym zresztą jakiś czas temu na grupie WJUG było - nie można przeciwstawiać serwera aplikacyjnego i Spring. Kombinacja serwer aplikacyjny JEE + Spring jest bardzo mocną platformą na której można budować serwerowe aplikacje. <BR/>Trzymałbym się też rzeczywistości, która jasno pokazuje, że "model Spring" w sposób absolutny zdominował "model EJB" i do "zabójstw" nie dochodzi ;-). Wręcz przeciwnie - dzisiaj wielu (większość ???) programistów szczególną uwagę przywiązuje do możliwości łatwego testowania swojego kodu - problem, którego akurat EJB3 (znowu dotyczy Session i Message-Driven Beans) wciąż nie rozwiązuje i nic "gotowego" tu nie oferuje.<BR/>Aby podtrzymać DOBRĄ praktykę przekomarzania się, to przyznam, że Twojej analogii o app serwerze jako "aplikacji opartej o Spring" nie załapałem ;-).<BR/><BR/>To w sumie też już było kilka razy poruszane, ale moim skromnym zdaniem w fajny sposób pokazałeś, że CZASAMI te zniesławione ostatnimi czasy deployment deskryptory (nawet XMLowe) mogą być lepszym podejściem (biorąc pod uwagę ZAŁOŻENIA) od będących-cool adnotacji. Wybór "adnotacje vs. zewnętrzna konfiguracja" jest kwestią indywidualną danego programisty. Czasem lepiej pasuje jedno, czasem drugie. Akurat mapowanie OR, czy konfiguracja transakcji należą moim zdaniem do tych, gdzie - zwłaszcza w dłuższej perspektywie - zewnętrzna konfiguracja ma przewagę nad adnotacjami. Marzy mi się takie rozszerzenie do IDE, w którym będzie refaktoring zamieniający jednym kliknięciem adnotacje na konfigurację i odwrotnie...<BR/><BR/>Pozdrawiam,<BR/>Waldek KotWaldek Kothttps://www.blogger.com/profile/18016237674528659018noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-91457965862986752862008-03-19T12:18:00.000+01:002008-03-19T12:18:00.000+01:00Artykuł powiadasz? Hmm, jedynie co przychodzi mi d...Artykuł powiadasz? Hmm, jedynie co przychodzi mi do głowy to dokumentacja Springa i Google - potencjalnie książki, ale nie spodziewałbym się wiele o tx w nich. Nie mam nic ponad to.<BR/><BR/>Odnośnie WAS 6.1, to skorzystaj z rozszerzenia EJB3 (EJB3 Feature Pack), które dodaje jego obsługę w serwerze, który wciąż jest na poziomie Java EE 1.4. Testowałem i opisałem. Już niedługo "opisałem" ujrzy światło dzienne.<BR/><BR/>Użycie AOP vs @Transactional wynikało z potrzeby uniezależnienia aplikacji od środowiska uruchomieniowego. Chciałem, aby aplikacja była czysta od jakichkolwiek dodatków czy to z EJB3, czy JPA, czy w końcu Spring. Udało się i stąd wydawało mi się słusznym, aby o tym napisać. Na razie Springa traktuję jako dodatek i nic poza tym. Docelowym środowiskiem jest serwer aplikacyjny Java EE 5. Ale do tego jeszcze trochę czasu upłynie. Przed tym krokiem chciałbym jeszcze wdrożyć OSGi i zobaczyć jego zalety w aplikacji webowej opartej o Wicket (jeśli w ogóle takie zalety będą widoczne, poza tymi standardowymi - większa modularyzacja, itp.). Gdybym wiedział, czego w WAS 6.1 dotykasz, jaką masz konfigurację serwera i aplikacji mógłbym pomóc więcej. Pisz na priv.<BR/><BR/>Re PS. SCEAę zarzuciłem, kiedy otrzymałem diagramy UMLowe do rozrysowania i jedynie 2 tygodnie. To było dla mnie za wiele i po jednym dniu stwierdziłem, że poddaję się. Poszukałem sobie coś ciekawszego i tak SCEA poszła w zapomnienie. Widzę, że SCEA 5 jeszcze nie ma, ale na otarcie łez wydano SCWCD 5, więc teraz o tym myślę. Dodatkowo rozpoznaję praktycznie UMLa, więc może kiedy SCEA 5 wyjdzie, ja już będę gotów. Na razie nie jestem.Anonymoushttps://www.blogger.com/profile/09734540973692423017noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-18819331768177985622008-03-19T11:27:00.000+01:002008-03-19T11:27:00.000+01:00Witaj Jacku,temat ciekawy, zwłaszcza że niedawno z...Witaj Jacku,<BR/><BR/>temat ciekawy, zwłaszcza że niedawno zacząłem zabawę ze Springiem i doszło do tematu transakcji. Zanim zacznę zadawać głupie pytania, to może polecisz jakiś ciekawy artykuł, który dogłębnie rozwinie ten temat? Interesuje mnie zwłaszcza w aspekcie pracy w kontenerze j2ee (a konkretnie was 6.1), w połączeniu z hibernate'm. W zwykłych ejb'kach ustawianie propagacji transakcji było proste, w RAD'zie dało się wszystko wyklikać;) Tu widzę, że używasz AOP, a ja skłaniam się jednak ku annotacjom @Transactional. Mam małe problemy (niby wszystko działa, ale nie do końca wiem dlaczego - znając życie zapewne to kwestia konfiguracji :) (websphere'owy transactionManager, LocalSessionFactoryBean, OpenSessionInViewFilter...)<BR/><BR/>PS. Jak poszła SCEA? Trzeba przyznać, że zadania były trudne bo zawierały mnóstwo błędów...Adam Czysciakhttps://www.blogger.com/profile/09396222350237314950noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-44845983320767982912008-03-18T02:58:00.000+01:002008-03-18T02:58:00.000+01:00No coz-od siebie dodam anegdote uslyszana od Alefa...No coz-od siebie dodam anegdote uslyszana od Alefa Arendsena. Podobno implementacja EJB3 w Weblogicu powstala jako "cwiczenie prkatyczne" ktore Rod Johnson i Arendsen wlasnie urzadzili sobie w ramach wykorzystywania mozliwosci Springa. Zajelo im to raptem kilka godzin, a trafilo gdzies do uszu ludzi z BEA-ktorzy wykorzystali to poczatkowo do testow, a potem zaczeli wcielac do samego serwera. <BR/><BR/>Nie wiem, na ile to prawda, na ile anegdota - ale swietnie ilustruje mozliwosci springa. I nawet pomimo tego ze zawsze troche tego XML-a zostanie(szczegolnie w przypadku tych modulow Springa, ktore nie dorobily sie jeszcze wlasnych definicji przestrzeni nazw w XML), mysle ze warto(wystarczy tylko zobaczyc jak mocno inspirowane zestawieniem Spring+Hibernate byly JPA i EJB3 i przyjrzec sie temu, czym tak naprawde beda profile w JEE 6)popapranyhttps://www.blogger.com/profile/11475351129405981904noreply@blogger.com