Skip to content
Cezary Butler edited this page Mar 15, 2016 · 5 revisions

I. Wymagania środowiskowe do przedmotiu fakultatywnego Programiści Sp. z o.o.

  1. JRE 8
  2. Zmienna środowiskowa (systemowa) JAVA_HOME wskazująca na katalog instalacji JRE (tam gdzie leży katalog bin)
  3. Zmienna środowiskowa (systemowa) PATH - dopisać ścieżkę do bin w katalogu JAVA_HOME
  4. Maven 3.x
  5. Zmienna środowiskowa (systemowa) M2_HOME wskazująca na katalog instalacji Mavena (tam gdzie leży katalog bin)
  6. Zmienna środowiskowa (systemowa) PATH - dopisać ścieżkę do bin w katalogu M2_HOME
  7. Posgresql 9.4
  8. pgAdmin III
  9. Idea IntelliJ 15 Ultimate (licencja studencka)
  10. Konto GitHub

IIa. Tworzenie nowego projektu

  1. Uruchom IntelliJ
  2. Utwórz nowy projekt
  3. Z lewej strony wybierz Spring Initializr, po prawej upewnij się, że wybrane jest JDK 1.8. NEXT
  4. Wypełnij pola wedle uznania. Type: Maven Project, Packaging: Jar, Java version: 1.8, Language: Java. NEXT
  5. Spring Boot Version: 1.3.3
  6. Z listy wybierz:
    • Web
      • Web
      • Jersey (JAX-RS)
    • SQL
      • JPA
      • PostgreSQL
  7. NEXT. Nazwij projekt i podaj ścieżkę projektu. FINISH.
  8. W prawym górnym rogu powinien pojawić się monit, wybierz "Add as maven project"
    • w przeciwnym wypadku z prawego paska (wybierz zakładkę maven, następnie w niej + i wskaż ścieżkę głownego pom.xml projektu)
    • jeżeli prawy pasek nie jest widoczny ikonka w lewym dolnym rogu -> Maven -> teraz jest widoczny
  9. Wrzuć projekt do repozytorium:
    • górny pasek -> VCS -> Import into version control -> Share on GitHub
    • zaloguj się
    • zaznacz tylko całe katalogi .mvn i src oraz plik pom.xml

IIb. Pobieranie projektu z repozytorium:

  1. Uruchom IntelliJ
  2. Checkout from version control -> Git (lub GitHub)
  3. Podaj url repozytorium
  4. Podaj ścieżkę docelową projektu -> CLONE

III. Baza danych, dokonfigurowywanie projektu

  1. Uruchom pgAdmin

  2. Utwórz nową, pustą bazę danych (nie dodawaj żadnych tabel, tym zajmie się Spring)

  3. W projekcie, w pliku application.properties umieść:

    spring.jpa.database=POSTGRESQL spring.datasource.platform=postgres spring.jpa.show-sql=false spring.jpa.hibernate.ddl-auto=update spring.database.driverClassName=org.postgresql.Driver spring.datasource.url=jdbc:postgresql://localhost:5432/elista (lub swój host, port i nazwę bazy) spring.datasource.username=postgres (lub nazwę roli przydzielonej do bazy) spring.datasource.password=postgres (lub hasło dla przydzielonej roli)

  4. Wsparcie obsługi JPA w IntelliJ (opcjonalne, zalecane):

    • w katalogu resources, tuż obok application.properties utwórz nowy plik persistence.xml
    • w pliku umieść następującą zawartość:

    • następnie przejdź do struktury projektu (alt + ctrl + shift + s)
    • na swoim module wybierz + -> JPA
    • w pustej tabeli po prawej naciśnij + -> persistence.xml -> wskaż polożenie
    • każda nowa klasa typu @Entity powinna zostać dodana to pliku w sekcji jako: eu.programisci.pakiet.ob.NazwaKlasyOB
    • projekt działałby bez tej konfiguracji, ale umożliwi ona IntelliJ podpowiadanie w EJBQL

!!!. Pamiętaj o commicie i pushu do Gita

IV. Uruchamianie aplikacji

- w celu zbudowania/kompilacji projektu, w pasku po prawej stronie wybierz zakładkę Maven Projects
- projekt -> Lifecycle -> install -> klik klik
- Maven zbuduje aplikację
- w celu uruchomienia aplikacji, w tej samej zakładce: Plugins -> spring-boot -> spring-boot:run
- można klik kliknąc w celu uruchomienia lub:
	* kliknij prawym -> create ... (to z niebieską ikonką)
	* zaznacz Single instance only (ponowne uruchomienie projektu zamknie poprzednie uruchomienie automatycznie)
	* OK -> teraz skrót do uruchamiania aplikacji pojawia się na górze, obok przycisku PLAY
	* tuż obok jest też przycisk z robakiem używany do debugu (po prostu upewnij się, że w selekcie jest wybrany spring-boot:run)

V. Dostęp do bazy danych z poziomu IntelliJ

- w prawym pasku wybierz zakładkę Database
- + -> Data source -> PostgreSQL
- wpisz dane bazy -> OK
- !!! niektóre konfiguracje projektu, jak na przykład ta mogą zostać dodane do repozytorium, nie będzie to wymagało dokonfigurowywania projektu przez każdego innego użytkownika

VI. Dodanie Swaggera do projektu

  1. Do pliku pom.xml należy dodać poniższe 2 zależności:

    io.springfox springfox-swagger2 2.0.2 io.springfox springfox-swagger-ui 2.0.2
  2. Obok klasy *Application (gdzie * to nazwa projektu) należy utworzyc nową klase:

  @Configuration
  @EnableSwagger2
  public class SwaggerConfig {
    @Bean
    public Docket userApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().paths(apiPaths()).build();
    }
    private Predicate<String> apiPaths() {
        return or(regex("/elista/.*"));
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("E-Lista").description("Opis").termsOfServiceUrl("Terms of Service")
			.contact("Dane kontaktowe").license("Apache License Version 2.0")
			.licenseUrl("https://github.com/springfox/springfox/blob/master/LICENSE").version("2.0").build();
    }
  }
  1. Do klas DTO, zawierających model danych, który będzie wystawiany w API należy dodać nad klasą adnotację @ApiModel
  2. Swagger wg domyślnych ustawień dostępny będzie po uruchomieniu aplikacji pod http://localhost:8080/swagger-ui.html

!!!. Pamiętaj, że po każdej zmianie w kodzie backendu należy przebudować projekt (maven/install) i ponownie uruchomić Springa (spring-boot:run)

VII. Przykładowy projekt jest dostępny na GitHubie pod adresem: https://github.com/Programisci/elistax.git