Стартирайте уеб приложение с Spring 5

ПОЧИВКА Най-горе

Току що обявих новия курс Learn Spring , фокусиран върху основите на Spring 5 и Spring Boot 2:

>> ПРЕГЛЕД НА КУРСА

1. Общ преглед

Урокът илюстрира как да стартирате уеб приложение с Spring.

Ще разгледаме решението Spring Boot за зареждане на приложението и ще видим и подход, който не е Spring Boot.

Ще използваме предимно Java конфигурация, но също така ще разгледаме тяхната еквивалентна XML конфигурация.

2. Стартиране с помощта на Spring Boot

2.1. Зависимост на Maven

Първо, ще ни е необходима зависимостта spring-boot-starter-web:

 org.springframework.boot spring-boot-starter-web 2.1.1.RELEASE 

Този стартер включва:

  • spring-web и spring-webmvc модул, който ни е необходим за нашето уеб приложение Spring
  • стартер на Tomcat, за да можем директно да стартираме нашето уеб приложение, без изрично да инсталираме сървър

2.2. Създаване на Spring Boot Application

Най-ясният начин да започнете да използвате Spring Boot е да създадете основен клас и да го анотирате с @SpringBootApplication :

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

Тази единична анотация е еквивалентна на използването на @Configuration , @EnableAutoConfiguration и @ComponentScan.

По подразбиране ще сканира всички компоненти в същия пакет или по-долу.

След това, за Java-базирана конфигурация на Spring фасул, трябва да създадем клас за конфигуриране и да го анотираме с анотация @Configuration :

@Configuration public class WebConfig { }

Тази анотация е основният артефакт, използван от базираната на Java конфигурация Spring; той сам се мета-анотира с @Component , което прави анотираните класове стандартни компоненти и като такива също кандидати за сканиране на компоненти.

Основната цел на класовете @Configuration е да бъдат източници на дефиниции на боб за Spring IoC Container. За по-подробно описание вижте официалните документи.

Нека също да разгледаме решение, използващо основната библиотека spring-webmvc .

3. Стартиране с помощта на spring-webmvc

3.1. Зависимости на Maven

Първо, имаме нужда от зависимостта spring-webmvc:

 org.springframework spring-webmvc 5.0.0.RELEASE 

3.2. Базираната на Java уеб конфигурация

След това ще добавим конфигурационния клас, който има анотацията @Configuration :

@Configuration @EnableWebMvc @ComponentScan(basePackages = "com.baeldung.controller") public class WebConfig { }

Тук, за разлика от решението Spring Boot, ще трябва да дефинираме изрично @EnableWebMvc за настройка на конфигурации Spring MVC по подразбиране и @ComponentScan за задаване на пакети за сканиране на компоненти.

В @EnableWebMvc анотацията осигурява конфигурацията Пролет Уеб MVC, като изграждане на диспечерския сървлета, което дава възможност на @Controller и @RequestMapping анотации и създаване на други стойности.

@ComponentScan конфигурира директивата за сканиране на компоненти, като посочва пакетите за сканиране.

3.3. Класът на инициализатора

След това трябва да добавим клас, който реализира интерфейса WebApplicationInitializer :

public class AppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.scan("com.baeldung"); container.addListener(new ContextLoaderListener(context)); ServletRegistration.Dynamic dispatcher = container.addServlet("mvc", new DispatcherServlet(context)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }

Тук създаваме Spring контекст, използвайки класа AnnotationConfigWebApplicationContext , което означава, че използваме само конфигурация, базирана на анотации. След това посочваме пакетите, които да сканираме за компоненти и конфигурационни класове.

И накрая, дефинираме входната точка за уеб приложението - DispatcherServlet.

Този клас може изцяло да замени файла web.xml от версии на 3.0 Servlet.

4. XML конфигурация

Нека също така да разгледаме набързо еквивалентната XML уеб конфигурация:

Можем да заменим този XML файл с класа WebConfig по-горе.

За да стартираме приложението, можем да използваме клас Initializer, който зарежда XML конфигурацията или файл web.xml. За повече подробности относно тези два подхода разгледайте предишната ни статия.

5. Заключение

В тази статия разгледахме две популярни решения за стартиране на уеб приложение Spring, едно с помощта на уеб стартера Spring Boot и друго с помощта на основната библиотека spring-webmvc.

В следващата статия за REST с Spring, обхващам настройването на MVC в проекта, конфигурирането на HTTP кодовете на състоянието, разпределението на полезния товар и договарянето на съдържанието.

Както винаги, кодът, представен в тази статия, е достъпен в Github. Това е проект, базиран на Maven, така че трябва да е лесно да се импортира и да се изпълнява както е.

ПОЧИВКА отдолу

Току що обявих новия курс Learn Spring , фокусиран върху основите на Spring 5 и Spring Boot 2:

>> ПРЕГЛЕД НА КУРСА