Skip to content

22. Załączniki

Poniżej przedstawiamy sposób instalacji narzędzi wykorzystanych w niniejszym dokumencie na komputerach z systemem Windows 7 lub 8. Zrzuty ekranu zazwyczaj przedstawiają 64-bitowe wersje SGBD i zainstalowanych narzędzi. Czytelnik powinien dostosować instrukcje do własnego środowiska.

22.1. Instalacja JDK

W URL znajduje się [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (październik 2014 r.), a najnowsza wersja to JDK. W dalszej części folder instalacyjny JDK będziemy nazywać <jdk-install>.

 

22.2. Instalacja Mavena

Maven to narzędzie do zarządzania zależnościami projektu Java i nie tylko. Jest ono dostępne (październik 2014 r.) w pakietach URL i [http://maven.apache.org/download.cgi].

 

Pobierz i rozpakuj archiwum. Folder instalacyjny Mavena nazwiemy <maven-install>.

  • W pliku [1] plik [conf / settings.xml] konfiguruje Maven;

Znajdują się w nim następujące wiersze:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
-->

Domyślna wartość w wierszu 4 może stanowić problem dla niektórych programów korzystających z Mavena, jeśli tak jak u mnie wasz {user.home} zawiera spację w ścieżce (na przykład [C:\Users\Serge Tahé]). W wierszu 7 należy wskazać inny katalog jako lokalne repozytorium Mavena:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>

W wierszu 7 należy unikać ścieżki zawierającej spacje.

22.3. Instalacja STS (Spring Tool Suite)

Zainstalujemy pakiet narzędziowy SpringSource (październik 2014 r.), czyli środowisko Eclipse wyposażone w liczne wtyczki związane z frameworkiem Spring, a także z preinstalowaną konfiguracją Maven.

  • przejdź na stronę zestawu narzędzi SpringSource (STS) [1], aby pobrać aktualną wersję STS [2A] [2B],
  • pobrany plik jest instalatorem, który tworzy drzewo plików [3A] [3B]. W [4] uruchamia się plik wykonywalny,
  • w pliku [5] wyświetla się okno robocze programu IDE po zamknięciu okna powitalnego. W pliku [6] wyświetla się okno serwerów aplikacji,
  • w [7] wyświetla się okno serwerów. Zarejestrowano jeden serwer. Jest to serwer VMware zgodny z Tomcatem.

Należy wskazać w STS katalog instalacyjny Mavena:

  • w [1-2] konfiguruje się STS;
  • w [3-4] dodaje się nową instalację Mavena;
  • w [5] należy wskazać folder instalacyjny Mavena;
  • w [6] zamykamy kreatora;
  • w [7] ustawia się nową instalację Mavena jako domyślną;
  • w [8-9] sprawdzamy lokalny repozytorium Mavena, czyli folder, w którym będą umieszczane pobrane zależności oraz w którym STS umieści wygenerowane artefakty;

Należy również wybrać JDK (Java Development Kit), aby móc uruchamiać zarówno projekty Eclipse bez Mavena, jak i z Mavenem [1-5].

Wraz z [4] można dodać JDK (Java Development Kit) lub JRE (Java Runtime Environment). Ten ostatni potrafi uruchamiać pliki .class, ale nie potrafi kompilować plików .java w celu ich wygenerowania. JDK potrafi wykonać obie te czynności. Wybierzemy JDK, ponieważ niektóre operacje Maven wymagają JDK.

Aby utworzyć projekt Eclipse, należy postępować w następujący sposób:

  • w [3], nadaj nazwę projektowi;
  • w polu [4] należy wskazać istniejący, pusty katalog;
  • w [5], utworzony projekt;
  • w [5-8], utwórz pakiet. Pakiet to folder zawierający kod Java. Dwie klasy mogą nosić tę samą nazwę, jeśli należą do różnych pakietów. W projekcie nie może istnieć dwóch pakietów o tej samej nazwie. Nie można zatem użyć nazwy pakietu, która istnieje w jednej z zależności projektu. Firma jako nazwę pakietu wybierze nazwę określającą firmę, projekt i jego różne gałęzie;
  • w [9], nadaj nazwę pakietowi;
  • w pliku [10] znajduje się utworzony pakiet;
  • w [11-13] tworzymy klasę w utworzonym pakiecie;
  • w [14] nadaj nazwę klasie (musi być zgodna z normą CamelCase – każde słowo w nazwie powinno zaczynać się wielką literą, a pozostałe litery powinny być małe);
  • w pliku [15] należy zweryfikować pakiet;
  • w [16] zaznacz pole wyboru. Wymaga to wygenerowania metody statycznej [main]. Metoda ta sprawia, że klasa staje się wykonywalna, tj. jest pierwszą klasą uruchamianą w projekcie;
  • w [17] – tak utworzoną klasę;

W metodzie [main] wpisz następujący kod, który wyświetla tekst w konsoli:


package st.istia;

public class Test01 {

    public static void main(String[] args) {
        System.out.println("test01");
    }

}
  • w [18-20] uruchom klasę. Zostanie wówczas wykonana jej metoda [main];
  • w [21-22], wynik działania;

Jeśli widok [Console] nie istnieje, należy postępować w następujący sposób: [1-4]:

Podczas importowania projektu Eclipse mogą pojawić się błędy. Może to wynikać z nieprawidłowej konfiguracji projektu. Aby skorygować błąd (jeśli występuje), należy postępować w następujący sposób:

  • w pliku [1] zmień plik [Build Path] projektu;
  • na [2] – projekt jest skonfigurowany do korzystania z pliku JVM 1.5;
  • na [3], usuń tę zależność;
  • w pliku [4] dodaj nową zależność;
  • w [5] dodaj JVM;
  • w [6] wybierz JVM z pozycji;

Po wykonaniu tych czynności zatwierdzamy całość, a następnie przechodzimy do właściwości [Java compiler] projektu [7]:

  • w [8] należy zlecić kompilatorowi akceptację wszystkich cech języka Java aż do wersji 1.7 (lub 1.8) włącznie;
  • w pliku [9] zatwierdza się zmiany;
  • w [10] tak skonfigurowany projekt nie powinien już zawierać błędów;

Ponadto zaimportowany projekt może korzystać z kodowania znaków UTF-8. Aby ustawić to kodowanie w zaimportowanym projekcie [1-4], należy postępować w następujący sposób:

Ponadto warto wyłączyć sprawdzanie pisowni w projekcie, aby komentarze w języku francuskim nie były podkreślane jako błędne. Wykonaj poniższe kroki:

22.4. Instalacja IDE NetBeans

NetBeans jest dostępny pod adresem URL [http://netbeans.org/downloads/].

 

Można pobrać powyższą wersję Java SE (Standard Edition).

22.5. Instalacja wtyczki do przeglądarki Chrome [Advanced Rest Client]

W niniejszym dokumencie korzystamy z przeglądarki Chrome firmy Google (http://www.google.fr/intl/fr/chrome/browser/). Dodamy do niej rozszerzenie [Advanced Rest Client]. Można to zrobić w następujący sposób:

 
  • aplikacja jest wtedy dostępna do pobrania:
  • aby ją pobrać, należy utworzyć konto Google. Aplikacja [Google Web Store] prosi następnie o potwierdzenie [1]:
  • W [2] dodane rozszerzenie jest dostępne w opcji [Applications] [3]. Opcja ta jest wyświetlana na każdej nowej karcie, którą tworzysz (CTRL-T) w przeglądarce.

22.6. Obsługa jSON w Javie

W sposób tra nsparente dla programisty framework [Spring MVC] wykorzystuje bibliotekę jSON [Jackson]. Aby zilustrować, czym jest jSON (JavaScript Object Notation), przedstawiamy tutaj program, który serializuje obiekty do formatu jSON oraz wykonuje odwrotną operację, deserializując wygenerowane ciągi znaków jSON w celu odtworzenia pierwotnych obiektów.

Biblioteka „Jackson” umożliwia utworzenie:

  • ciągu jSON z obiektu: new ObjectMapper().writeValueAsString(object);
  • obiektu na podstawie ciągu znaków jSON: new ObjectMapper().readValue(jsonString, Object.class).

Obie metody mogą wywołać błąd IOException. Oto przykład.

Powyższy projekt to projekt Maven zawierający następujący plik [pom.xml]:


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>istia.st.pam</groupId>
  <artifactId>json</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.3.3</version>
    </dependency>
  </dependencies>
</project>
  • wiersze 12–16: zależność, która ładuje bibliotekę „Jackson”;

Klasa [Personne] ma następującą postać:


package istia.st.json;

public class Personne {
    // dane
    private String nom;
    private String prenom;
    private int age;

    // producenci
    public Personne() {

    }

    public Personne(String nom, String prénom, int âge) {
        this.nom = nom;
        this.prenom = prénom;
        this.age = âge;
    }

    // podpis
    public String toString() {
        return String.format("Personne[%s, %s, %d]", nom, prenom, age);
    }

    // metody pobierające i ustawiające
...
}

Klasa [Main] ma następującą postać:


package istia.st.json;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Main {
  // narzędzie do serializacji / deserializacji
  static ObjectMapper mapper = new ObjectMapper();

  public static void main(String[] args) throws IOException {
    // tworzenie osoby
    Personne paul = new Personne("Denis", "Paul", 40);
    // wyświetlanie jSON
    String json = mapper.writeValueAsString(paul);
    System.out.println("Json=" + json);
    // instancjonowanie obiektu Personne na podstawie JSON
    Personne p = mapper.readValue(json, Personne.class);
    // wyświetlanie osoby
    System.out.println("Personne=" + p);
    // tabela
    Personne virginie = new Personne("Radot", "Virginie", 20);
    Personne[] personnes = new Personne[]{paul, virginie};
    // wyświetlanie JSON
    json = mapper.writeValueAsString(personnes);
    System.out.println("Json personnes=" + json);
    // słownik
    Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
    hpersonnes.put("1", paul);
    hpersonnes.put("2", virginie);
    // wyświetlanie JSON
    json = mapper.writeValueAsString(hpersonnes);
    System.out.println("Json hpersonnes=" + json);
  }
}

Wykonanie tej klasy powoduje wyświetlenie następującego ekranu:

1
2
3
4
Json={"nom":"Denis","prenom":"Paul","age":40}
Personne=Personne[Denis, Paul, 40]
Json personnes=[{"nom":"Denis","prenom":"Paul","age":40},{"nom":"Radot","prenom":"Virginie","age":20}]
Json hpersonnes={"2":{"nom":"Radot","prenom":"Virginie","age":20},"1":{"nom":"Denis","prenom":"Paul","age":40}}

Z przykładu należy zapamiętać:

  • obiekt [ObjectMapper] niezbędny do transformacji jSON / Object: wiersz 11;
  • transformację [Personne] --> jSON: wiersz 17;
  • transformację jSON → [Personne]: wiersz 20;
  • wyjątek [IOException] wygenerowany przez obie metody: wiersz 13.

22.7. Instalacja [WampServer]

[WampServer] to zestaw oprogramowania do tworzenia aplikacji w PHP / MySQL / Apache na komputerze z systemem Windows. Będziemy go używać wyłącznie do obsługi SGBD i MySQL.

  • na stronie [WampServer] [1] należy wybrać odpowiednią wersję [2],
  • pobrany plik wykonywalny jest instalatorem. Podczas instalacji wymagane jest podanie różnych informacji. Nie dotyczą one MySQL. Można je zatem pominąć. Po zakończeniu instalacji wyświetla się okno [3]. Uruchamia się [WampServer],
  • w [4], ikona [WampServer] zostanie umieszczona na pasku zadań w prawym dolnym rogu ekranu [4],
  • po kliknięciu na nią wyświetla się menu [5]. Umożliwia ono zarządzanie serwerem Apache oraz SGBD i MySQL. Aby nim zarządzać, należy użyć opcji [PhpPmyAdmin],
  • po czym pojawia się poniższe okno,

Image

Nie będziemy szczegółowo omawiać korzystania z [PhpMyAdmin]. W punkcie 6.4.2 pokazujemy, jak użyć go do utworzenia bazy danych na podstawie skryptu SQL.