Archiwum kategorii ‘Java’
Usługi sieciowe – szybki efekt dzięki CXF
Mój nauczyciel matematyki zwykł mówić, że “dobry matematyk to leniwy matematyk”. Zwykł tak komentować karkołomne metody obliczeń stosowane w sytuacjach kiedy można coś zrobić prościej. Lubię tę zasadę stosować również w odniesieniu do programowania.
Kiedy przyszło mi niedawno stworzyć usługi sieciowe (ang. Web Services) w Javie pomyślałem o Apache CXF. CXF jest szkieletem (ang. framework) pomagającym budować usługi korzystające z API takich jak JAX-WS i zdolne do komunikacji używając protokołów SOAP, REST czy HTTP.
Spring, JAXB oraz Maven – czyli łatwe i przyjemne budowanie oraz konfigurowanie aplikacji
Jakiś czas temu stanąłem przed koniecznością napisania aplikacji, która miała mieć możliwość konfigurowania z zewnętrznego pliku XML. Wybór formatu XML był podyktowany złożoną strukturą informacji, które należało wczytać. Aplikacja była oparta o szkielet Spring a zależnościami i budowaniem zajmował się Maven. Pozostał wybór narzędzia, które przeniesie mi w wygodny sposób dane z pliku XML do aplikacji. Wybór padł na JAXB – Java Architecture for XML Binding. JAXB to technologia pozwalająca wygenerować klasy języka Java, które pomogą nam odwzorować plik XML na obiekty.
Nie będę się skupiał nadto na opisie każdego z wymienionych narzędzi lecz skupię się raczej na pokazaniu jak zaprząc je razem do działania.
Java Killers #001
Na blogu Pawła Szulca (również w wersji polskiej) można czasem znaleźć zagadki związane z Javą. Paweł nazywa je Java Killers.
Bardzo lubię je czytać a teraz sam mam taką zagadkę. Mam nadzieję, że dla Was będzie to choć trochę ciekawostka, ja byłem zdziwiony.
Oto kod:
public class Main {
public static void main(String[] args) {
Integer i1 = 1000;
Integer i2 = 1000;
if (i1 != i2) {
System.out.println("i1 and i2 are not the same");
}
Integer i3 = 10;
Integer i4 = 10;
if (i3 == i4) {
System.out.println("i3 and i4 are the same");
}
}
}
A oto wynik:
i1 and i2 are not the same i3 and i4 are the same
Co się takiego stało, że 1000 to nie 1000 ale 10 to już 10?
Automatyczne wstrzykiwanie bean’ów w Springu
Jednym z najważniejszych modułów frameworka Spring jest jego kontener odwrócenia sterowania (ang. Inversion of Control, IoC), który dostarcza nam możliwości wstrzykiwania zależności (ang. Dependency Injection, DI). Jest to miejsce gdzie dzieje się magia :-)
Taki kontener należy odpowiednio skonfigurować, aby bean‘y zarządzane przez framework były odpowiednio zainicjowane oraz ze sobą połączone. Nie będę opisywał wszystkich aspektów konfiguracji kontenera IoC, gdyż to zadanie na niekrótką książkę. Skupię się tylko na definiowaniu powiązań między bean‘ami za pomocą automatycznego wstrzykiwania (ang. autowire).