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.
Nelli Rokita jest głupia
Zanim rozwinę swoją myśl zawartą w tytule tego wpisu, chciałbym podać definicję słowa “głupi“. Słownik Języka Polskiego definiuje to pojęcie następująco:
- ograniczony i naiwny; też: świadczący o takich cechach;
- pot. bezwartościowy intelektualnie;
- pot. świadczący o czyimś zakłopotaniu;
- pot. dający się wykorzystywać;
- pot. niemający znaczenia;
- pot. kłopotliwy, niezręczny;
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?