Spring Initializer i prosta aplikacja Web Spring Boot

Spring Initializer i prosta aplikacja Web Spring Boot
Photo by Anisur Rahman on Unsplash

W tym poście pokażę Ci w jaki sposób możesz zacząć swoję przygodę ze Spring Boot. Utworzymy nowy projekt używając “Spring Initializer’a” oraz zaimplementujemy prosty kontroler do wyświetlania napisu “Hello world from web Spring Boot!” w Twojej przglądarce.

Tworzymy nowy projekt

Aby utworzyć gotowy projekt bazujący na Maven czy Gradle wystarczy wejść na stronę Spring Initializer.

Wybierz:

  • Project: Maven
  • Project Metadata Group: com.bigdataetl
  • Project Metadata Artifact: webdemo
  • Dependencies: Spring Web

Następnie klikamy przycisk Genrate i po chwili będziemy mieli gotową paczkę webdemo.zip do pobrania. Pobieramy plik, rozpakowywujemy i otwieramy w swoim ulubioninym IDE np. IntelliJ IDEA.

Przegląd modułu

Rzućmy okiem na początek na drzewko projektu. Spring Boot utworzył nam wszystkie niezbęde katalogi i klasy do tego, aby móc jak najszybciej zacząć działać, a nie zajmować się tworzeniem katalogów.

Jak widzimy na poniższym obrazku utworzone mamy:

  • Główna klasa: WebdemoApplication.class – widzimy również adnotacje @SpringBootApplication
  • Katalog resources a w nim gotowe katalogi na naszę wzorce stron html, pliki css lub js. Dodatkowo widzimy plik application.properties, który posłuży nam na parametryzowanie naszej aplikacji.
  • Katalog test z gotową klasą testową do naszej głównej aplikacji.
package com.bigdataetl.webdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class WebdemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(WebdemoApplication.class, args);
	}

}

Kontroler

Teraz utworzymy klasę, która będzie odpowiedzialna za obsługę żądania pod adresem http://localhost:8080/hello

W tym celu utwórz nowy pakiet com.bigdataetl.controller i klasę HelloController.class wewnątrze tego pakietu.

package com.bigdataetl.webdemo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String helloWorldFromSpringBoot() {
        return "Hello World from Spring Boot!";
    }

}

Uruchomienie

Teraz wystarczy uruchomić naszą główną klasę czyli WebdemoApplication.class. W logach zobaczysz jak Spring Boot automatycznie skonfigurował za Ciebie usługę Apache Tomcat na porcie 8080.

o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-03-01 22:24:35.845  INFO 8804 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]

Teraz wystarczy, że uruchomisz w przeglądarce URL: http://localhost:8080/hello i zobaczysz, że otrzymasz to co zwraca nam metoda helloWorldFromSpringBoot():

    @RequestMapping("/hello")
    public String helloWorldFromSpringBoot() {
        return "Hello World from Spring Boot!";
    }

Poniżej pełen log z uruchomienia.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.5.RELEASE)

2020-03-01 22:24:34.706  INFO 8804 --- [           main] c.bigdataetl.webdemo.WebdemoApplication  : Starting WebdemoApplication on pawel with PID 8804 (/home/pawel/Desktop/Blog/webdemo/target/classes started by pawel in /home/pawel/Desktop/Blog/webdemo)
2020-03-01 22:24:34.713  INFO 8804 --- [           main] c.bigdataetl.webdemo.WebdemoApplication  : No active profile set, falling back to default profiles: default
2020-03-01 22:24:35.832  INFO 8804 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-03-01 22:24:35.845  INFO 8804 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-03-01 22:24:35.845  INFO 8804 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.31]
2020-03-01 22:24:35.911  INFO 8804 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-03-01 22:24:35.912  INFO 8804 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1111 ms
2020-03-01 22:24:36.118  INFO 8804 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-03-01 22:24:36.260  INFO 8804 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-03-01 22:24:36.265  INFO 8804 --- [           main] c.bigdataetl.webdemo.WebdemoApplication  : Started WebdemoApplication in 2.146 seconds (JVM running for 2.673)
2020-03-01 22:24:37.301  INFO 8804 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-03-01 22:24:37.302  INFO 8804 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-03-01 22:24:37.313  INFO 8804 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 10 ms

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

0 0 vote
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments