Jak vytvořit u Spring Boot web. aplikace WAR soubor?

publikováno: 1.3.2014

Ve výchozím nastavení používá Spring Boot web. aplikace embedded Tomcat. To je super u hello world příkladů, extra jednoduchých aplikací, nebo pokud používáte Cloud Foundry. Obyčejně ale chcete vytvořit klasickou webovou aplikaci, kterou poté můžete nasadit na jakýkoli Java EE server. Jak na to? 

1. V pom.xml nastavte:

<packaging>war</packaging>

2. v pom.xml do dependencies přidejte:

<dependency>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <groupId>org.springframework.boot</groupId>
   <scope>provided</scope>
</dependency>

3. Vytvořte tuto třídu:

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

public class HelloWebXml extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(
            SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
}

Poznámka: Application.class vypadá takto:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan
@EnableAutoConfiguration
public class Application {

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

HOTOVO

Teď už můžete tuto aplikaci spustit na jakémkoli Java EE serveru.

Pro spuštění (na mém oblíbeném) embedded Jetty serveru přidejte do pom.xml dovnitř <build><plugins>:

<plugin>
   <groupId>org.eclipse.jetty</groupId>
   <artifactId>jetty-maven-plugin</artifactId>
   <version>9.1.2.v20140210</version>
</plugin>

Pro vygenerování WAR souboru spusťte v hlavním adresáři projektu:

mvn package

Do adresáře target se vygeneruje soubor s příponou .war.original, který je možné nasadit na jakýkoli Java EE server. Také se vygeneruje soubor s příponou war, který obsahuje embedded Tomcat a je možné ho spustit pomocí:

java -jar nazev-souboru.war

Celý příklad (spolu s Hibernate a Spring Data JPA) je k dispozici na mém GitHub účtu: https://github.com/jirkapinkas/example-spring-boot

 

Reference

Skoleni bylo kazdopadne prinosne, i kdyz ve Springu uz chvilku delam, dodalo mi to kontext a hlubsi porozumeni. Libil se mi i prehled dalsich frameworku, jejich prakticke vyuziti a ze

Daniela

Se školením jsem byl naprosto spokojen. Výborný poměr teorie a praxe. Vypíchl bych i přístup školitele k probírané problematice, znalosti a zkušenosti. Je vidět, že Jirka je velký fanoušek Javy

Václav

Velmi se mi líbila přátelská a neformální atmosféra a viditelné nadšení a zapojení přednášejícího do problematiky a tudíž skutečně zajímavé příklady z praxe a možnost zeptat se prakticky na jakoukoliv

Ondřej


Novinky

16.11.2017: Java 9 přednáška
Na JavaDays 2017 jsem měl přednášku na téma Java 9, o kterou bych se rád podělil

26.9.2017: RebelLabs Developer Productivity Report 2017
Další rok, další RebelLabs report :-)

14.9.2017: Java release cycle zrychluje & Java Flight Recorder zdarma
Dlouhé mnohaleté prodlevy mezi jednotlivými major releasy v Javě končí!