!!! Od 1.6.2022 jsem zaměstnán na HPP. Kde? To tady nemůžu napsat (kvůli Compliance). Ale na mém Linkedin účtu (nick: Jirka Pinkas) to určitě najdete. 😁 V současnosti mám volných 10 dní, které mohu alokovat na školení 😊

Spring Web MVC aplikace kompletně bez XML

publikováno: 1.3.2014

Pokud ve Vaší webové aplikaci nechcete používat vůbec žádný XML konfigurační soubor (web.xml, Spring konfigurace apod.), pak můžete buď použít Spring Boot (viz. níže), nebo vytvořit tuto třídu:

public class MyAppInitializer implements WebApplicationInitializer {

  @Override
  public void onStartup(ServletContext servletContext) 
                 throws ServletException {
    WebApplicationContext context = getContext();
    servletContext.addListener(new ContextLoaderListener(context));
    ServletRegistration.Dynamic dispatcher 
      = servletContext.addServlet("DispatcherServlet", 
          new DispatcherServlet(context));
      dispatcher.setLoadOnStartup(1);
      dispatcher.addMapping("/*");
  }

  private AnnotationConfigWebApplicationContext getContext() {
    AnnotationConfigWebApplicationContext context 
       = new AnnotationConfigWebApplicationContext();
    context.setConfigLocation("com.test.config");
    return context;
  }

}

V této třídě jsme vytvořili root a servlet context Springu. Jedná se o alternativu definování Dispatcher servletu a ContextLoaderListener uvnitř web.xml souboru. Dispatcher servlet se nastartuje při startu webové aplikace a bude zachytávat všechny URL v aplikaci. Root context Springu bude hledat v balíčku com.test.config třídy s anotací @Configuration, které použije při vytvoření Spring contextu. Taková třída může vypadat takto:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.test")
public class WebMvcConfig extends WebMvcConfigurerAdapter { }

Anotace @EnableWebMvc je ekvivalentem <mvc:annotation-driven /> v XML. Nyní už můžete uvnitř balíčku com.test vytvářet controllery atd. 

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

 

Další možností je použít Spring Boot, který má třídu SpringBootServletInitializer, která implementuje interface WebApplicationInitializer. Příklad (opět spolu s Hibernate a Spring Data JPA) naleznete opět na mém GitHub účtu: https://github.com/jirkapinkas/example-spring-boot

Zdroje:

Reference

Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek

Certicon
David

Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.

Jaroslav

Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.

Retia
Jaromír


Novinky

14.9.2024: Github Copilot & IntelliJ Idea
Novinky v Github Copilot + IntelliJ Idea

31.8.2024: AI & Copilot

25.12.2023: testcontainers pro lokální vývoj