-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- JRE 8
- Zmienna środowiskowa (systemowa) JAVA_HOME wskazująca na katalog instalacji JRE (tam gdzie leży katalog bin)
- Zmienna środowiskowa (systemowa) PATH - dopisać ścieżkę do bin w katalogu JAVA_HOME
- Maven 3.x
- Zmienna środowiskowa (systemowa) M2_HOME wskazująca na katalog instalacji Mavena (tam gdzie leży katalog bin)
- Zmienna środowiskowa (systemowa) PATH - dopisać ścieżkę do bin w katalogu M2_HOME
- Posgresql 9.4
- pgAdmin III
- Idea IntelliJ 15 Ultimate (licencja studencka)
- Konto GitHub
- Uruchom IntelliJ
- Utwórz nowy projekt
- Z lewej strony wybierz Spring Initializr, po prawej upewnij się, że wybrane jest JDK 1.8. NEXT
- Wypełnij pola wedle uznania. Type: Maven Project, Packaging: Jar, Java version: 1.8, Language: Java. NEXT
- Spring Boot Version: 1.3.3
- Z listy wybierz:
- Web
- Web
- Jersey (JAX-RS)
- SQL
- JPA
- PostgreSQL
- Web
- NEXT. Nazwij projekt i podaj ścieżkę projektu. FINISH.
- 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
- 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
- Uruchom IntelliJ
- Checkout from version control -> Git (lub GitHub)
- Podaj url repozytorium
- Podaj ścieżkę docelową projektu -> CLONE
-
Uruchom pgAdmin
-
Utwórz nową, pustą bazę danych (nie dodawaj żadnych tabel, tym zajmie się Spring)
-
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)
-
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
- 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)
- 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
-
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 -
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();
}
}
- Do klas DTO, zawierających model danych, który będzie wystawiany w API należy dodać nad klasą adnotację @ApiModel
- 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)