Projekt startowy Spring Boot

Po wprowadzeniu w podstawowe tematy Springa postanowiliśmy od razu konkretnie wystartować ze Spring Boot-em. Na naszym blogu znajdziecie aplikację startową gotową do ściągnięcia w postaci pliku zip. Artykuł opisujący projekt znajduje się na stronie Projekt startowy Spring Boot, a przycisk do pobrania jest dostępny na dole tej strony.

Struktura projektu Spring Boot

Typowy projekt Spring Boot posiada kilka charakterystycznych elementów, wśród których wyróżniamy klasę - u nas nazywaną Application - zawierającą specjalną adnotację i interfejs oraz pliki konfiguracyjne Spring Boot i Maven:
  • Adnotacja - Adnotacja o nazwie @SpringBootApplication

    Zawiera ona kilka innych adnotacji, które są kluczowe w przypadku budowania aplikacji w oparciu o Spring Boot-a:
    • @SpringBootConfiguration - wskazuje, że klasa oznaczona tą adnotacją dostarcza aplikację Spring Boot
    • @EnableAutoConfiguration - włącza autokonfigurację kontekstu Springa (Spring Application Context)
    • @ComponentScan - umożliwia wykonanie procedury skanowania klas w poszukiwaniu komponentów,
      które mają zostać zainicjowane, a następnie umieszczone w kontenerze Springa
  • Interfejs - Interfejs o nazwie WebApplicationInitializer, a nawet lepiej - klasa abstrakcyjna implementująca ten interfejs - SpringBootServletInitializer

    Klasa, która rozszerza SpringBootServletInitializer umożliwia nam użycie metody konfigurującej naszą aplikację:
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        	return builder.sources(Application.class);
        }
    
    Ciekawostka. Dodanie SpringBootServletInitializer nie zawsze jest wymagane. Jest potrzebne w przypadku deployowania (instalowania) aplikacji w kontenerze aplikacji web (np. Tomcat), jeśli aplikacja ta została przygotowana w postaci pliku WAR. Metoda configure powinna wskazywać na klasę uruchomieniową naszej aplikacji Spring Boot. W przypadku gdy chcemy uruchamiać aplikację "z palca" lub komendą z command line'a, nie musimy implementować tego interfejsu. Wtedy aplikacja korzysta z Tomcata wbudowanego w Spring Boota. Jeśli to Twoje początki ze Spring Bootem albo jeśli nie planujesz instalować aplikacji w postaci pliku WAR na zewnętrznym Tomcacie, wówczas nie musisz implementować tego interfejsu.
  • Metoda uruchomieniowa - Statyczna metoda main, zawierająca kod uruchamiający aplikację Spring Boot:
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
    
  • Plik konfiguracyjny - Plik o nazwie application.properties, albo application.yml

    W ten sposób możemy sterować wieloma ustawieniami aplikacji, np. możemy podać port pod którym ma się ona uruchomić. Więcej w tym temacie możecie znaleźć w rozdziale: Spring Boot - Konfiguracja.
    server.port=8080
    spring.mvc.favicon.enabled = false
    security.basic.enabled=false
    
    spring.h2.console.enabled=true
    spring.h2.console.path=/console/
    spring.h2.console.settings.web-allow-others=true
    
    spring.jpa.hibernate.ddl-auto=create-drop
    
  • Plik Maven - Mavenowy plik pom.xml, w którym musimy umieścić odwołanie do odpowiedniego parent-a oraz dodać odpowiednie szablony startowe. Więcej w tym temacie piszemy w rozdziale: Spring Boot - Maven.
Na koniec zobaczmy jak powyższe elementy wyglądają w całości:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
    
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
}
Nasza rekomendacja
Tak jak programowanie w Javie kręci się obecnie wokół Springa, tak programowanie z użyciem platformy Spring kręci się wokół Spring Boota. Największe korporacje na świecie, a także całkiem nowe startupy, tworzą dziś aplikacje używając właśnie Spring Boota. Upraszcza on proces tworzenia aplikacji i pozwala skupić się na implementacji logiki biznesowej, co doskonale wpisuje się w Springowe motto "konwencja ponad konfiguracją". Zresztą po co pisać więcej kodu jak można mniej? Tak też właśnie i my podchodzimy do sprawy, czemu dajemy wyraz w kolejnym akapicie.
Używamy w StartAPPa


Cała aplikacja to projekt Spring Boot, którego moduły również działają jako niezależne aplikacje Spring Boot (otrzymujecie je pobierając interesujące Was kursy - lista poniżej). Wszystkie aplikacje zawierają strukturę zgodną z opisem w tym rozdziale.

Formularz Podstawowy
Formularz Zaawansowany
Tabela Podstawowa
Tabela Zaawansowana
Wykres Danych
Importer CSV
Importer XLS
Login & Reset
Linki
http://spring.io/projects/spring-boot

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy:
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .