Току що обявих новия курс 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, така че трябва да е лесно да се импортира и да се изпълнява както е.
ПОЧИВКА отдолу