Wydaje się, że singleton to jeden z prostszych wzorców projektowych. Jednak jego prawidłowa implementacja w języku Java może przysporzyć sporo problemów. Poniżej przedstawiam implementację, która powinna być bezpieczna w środowisku wielowątkowym, a zarazem nadal wydajna.
String literals
- Published on : 06 kwiecień 10
- in : Programowanie
- Comments : 0 Comments
Ile obiektów może zostać usuniętych przez garbage collector po wykonaniu ostatniej linii poniższego pseudokodu?
String a = "test";
String b = new String("test");
a = b = null;
Mapowanie typów w Toplink JPA
- Published on : 19 marzec 10
- in : Programowanie
- Comments : 0 Comments
Co zrobić, aby budując system oparty o tradycyjną, relacyjną bazę danych oraz Toplink JPA wykorzystać w pełni siłę języka Java i JPQL? Tak by móc konstruować zapytania typu:
IpAddress ipAddr = new IpAddress("10.0.0.2");
TDhcp dhcp = em.createQuery("SELECT d from TDhcp d WHERE d.ipAddress=:ip")
.setParameter("ip", ipAddr)
[...]
Maven dependency scopes
- Published on : 06 marzec 10
- in : Programowanie
- Comments : 0 Comments
Maven provides four dependency scopes:
compile: A compile-scope dependency is available in all phases. This is the default value.
provided: A provided dependency is used to compile the application, but will not be deployed. You would use this scope when you expect [...]
Toplink wydajność – encje readonly
- Published on : 22 grudzień 09
- in : Programowanie
- Comments : 0 Comments
Jak wiadomo korzystanie z JPA, niesie z sobą bardzo wiele udogodnień, np.: umożliwia w miarę bezbolesne połączenie świata relacyjnego (baza danych) z światem obiektowości (java). Niestety jak każde rozwiązanie tego pociąga za sobą narzut wydajnościowy, szczególnie widoczny w czasie masowych operacji.
Jeśli jednak nasze operacje są typu “readonly”, czyli używamy JPA tylko do pozyskiwania encji z [...]
Maven automatyzacja tworzenia kolejnych wydań oprogramowania
- Published on : 20 listopad 09
- in : Programowanie
- Comments : 0 Comments
Tworzenie nowych wydań oprogramowania bardzo często idzie w parze z tworzeniem nowych tagów w svn. Aby zautomatyzować ten proces polecam użyć pluginu mavena: maven-release-plugin
Maven różności
- Published on : 20 listopad 09
- in : Programowanie
- Comments : 0 Comments
Kilka przydatnych komend mavena. Na razie nie ma ich tutaj zbyt wiele, ale postaram się uzupełniać listę w miarę natykania się na nowe, ciekawe konstrukcje.
Wdrażanie aplikacji na zdalnym GlassFish przy użyciu Maven2
- Published on : 19 listopad 09
- in : Programowanie
- Comments : 0 Comments
Aby przeprowadzić deployment aplikacji na zdalnym serwerze GlassFish przy użyciu Mavena, polecam użyć pluginu: asadmin-maven-plugin.
Plugin ten umożliwia wykonywanie, także innych zadań które zazwyczaj wykonywane są z asadmin.
Rekursywna zmiana uprawnień w Linux
- Published on : 31 październik 09
- in : Linux
- Comments : 0 Comments
Poniżej przykład umożliwiający zmianę uprawnień do wszystkich plików w bieżącym katalogu (oraz podkatalogach), tak aby mógł je czytać dowolny użytkownik. Nadajemy prawa tylko do odczytu.
Jak rodzi się obiekt
- Published on : 19 październik 09
- in : Programowanie
- Comments : 0 Comments
Tytuł trochę przewrotny, ale będzie o tworzeniu nowego obiektu, a dokładniej o tym w jakiej kolejności inicjowane są poszczególne jego elementy