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