Notatki do zajęć Technologie utrwalania danych dla języka Java (Hibernate, Spring i Maven w tle)
dr Jakub Neumann Kontakt: jakub.neumann [małpa] inf.ug.edu.pl
O technologiach
Na zajęciach prezentowanych będzie wiele technologii. Część związana blisko z tematyką np. Spring i Hibernate. Inne związane będą z innymi zagadnieniami np. zarządzanie bibliotekami (zależnościami), testowaniem, programowaniem aspektowym. Krótko przedstawiam technologie i ich role w projekcie:
- Spring Framework - w roli kontenera IoC oraz technologii oferującej wsparcie do możliwie bezbolesnej integracji z pozostałymi. Bardzo ważne dla nas będzie również testowanie i wsparcie Springa dla wyknonywania testów (głównie jednostkowych, choć nie tylko)
- Hibernate - w roli dostarczyciela trwałości (na różne sposoby)
- Apache Maven - spośród sporej ilości zadań jakie mogą być powierzone Mavenowi korzystać będziemy głównie z dwóch: spełnianie zależności pomiędzy bibliotekami w projekcie oraz zarządanie fazami budowania aplikacji. W projektach dostosowywać będziemy się do standardowego układu katalogów Mavena.
- DbUnit - do operacjach na danychy w bazie, głównie na użytek testów
Środowisko pracy (do samodzielnego montażu)
Poniżej zestaw oprogramowania potrzebnego do sprawnego i bezproblemowego , w granicach rozsądku rzecz jasna, eksperymentowania z omawianymi technologiami. System operacyjny obojętny o ile oczywiście wspiera Javę. Przykłady, screenshoty prezentuję na systemie Windows 7. JDK w implementacji Suna (ok. już teraz Oracle). Bardzo proszę o sumienne skonfigruowanie poniższego środowiska, najlepiej w wydzielonym miejscu. Wraz z poniższym oprogramowaniem przekazuję uwagi, które mogą pomóc w rozwiązaniu drobnych konfigruacyjnych problemów, które zaobserwowałem na swoim przypadku. Proszę też pamiętać, że moje rozwiązania mogą nie być jedynimi słusznymi czy najlepszymi. Sprawiają, że całość po prostu działa.
- Java
SE JDK 6 (nie JRE!)
Uwaga posiadacze 64-bitowych systemów operacyjnych. Istnieją odmiany Javy 64 i 32 bitowa. Póki co, dla systemu Windows szczególnie, zalecam użycie 32-bitowych wersji, zarówno Javy jak i Eclipsa. - Eclipse IDE for
Java EE Developers.
Proszę sprawić aby Eclipse uruchamiał się w środowisku JDK Javy (a nie JRE). W tym celu można dodać w pierwszych dwóch liniach w pliku eclipse.ini z katalogu eclipse, podobną jak moja scieżkę (bez cudzysłowów):-vm c:/Program Files (x86)/Java/jdk1.6.0_17/bin/javaw.exe
- Apache Maven
Po rozpakowaniu dystrybucji w pliku conf/settings.xml można zmienić w elemencie <localRepository> ścieżkę do lokalnego repozytorium Mavena. Potrafi solidnie spuchnąć, co jest ważne w przypadku systemów z ustawioną quotą lub innymi ograniczeniami odnośnie ilości miejsca lub wydajności (zewnętrzne dyski czy sieciowe systemy plików) i tym podobne sprawy. - Wtyczki dla Eclipse.
Sugerowanym przeze mnie sposobem instalacji wtyczek jest Help->Install new software. Robimy go za pomocą Copy&Paste adesu url, tzw. update site (uwaga! to nie jest strona www). Poniżej podaję adresy stron (zwyczajnych, www), na których można znaleźć update site dla odpowiednich wtyczek - robimy Copy a następnie Paste do Help->Install new software->Work with i klikamy Add. Poniżej podaję również jakie konkretnie wtyczki należy zainstalować, gdyż czasami jest więcej dostępnych.- Spring
IDE
Instalujemy 3 wtyczki: Spring IDE core, Spring IDE Autowire Extension, Spring IDE AOP Extension -
Eclipse Maven plugin
Instalujemy 1 wtyczkę: Maven Integration for Eclipse
Po instalacji należy jej wskazać położenie lokalnej instalacji (tej z pkt. 3) mavena: Window->Preferences->Maven->Instalations->Add i zaznaczyć checkboxa External dodanej lokalizacji. - Jakiś plugin do SVN (subclipse, subversive) lub narzędzie
zewnętrzne (TortoiseSVN) do pracy z repozytorum dostępnym przez metodę
svn+ssh
Instalujemy wtyczkę: Eclipse Subversive
Na swoim komputerze używam, ze względu na bezpieczną, bezproblemową i sprawną współpracę z repo dostępnym przez svn+ssh, Eclipse Subversive w kooperacji z pageant.exe (część dystrybucji putty) umożliwiającym bezhasłowy (klucze publiczny i prywatny) dostęp do konta poprzez ssh oraz TortoiseSVN. Dla chętnych wskazówki tutaj
- Spring
IDE
Jak zacząć
Kolejne wersje kodu aplikacji rozwijanego na zajęciach będę wrzucał do repozytorium w postaci tagów lub czasami branchy (piękne polskie słowo). O tym jak zacząć w szczegółach czyli import projektu z repozytorium svn