Кроме основного мавен репозитория из которого происходит загрузка зависимостей также есть и другие репозитории, и чтобы скачивание происходило и оттуда его нужно указать в pom.xml.
Давайте удалим файл web.xml, чтобы теперь настраивать приложение в Java классе MySpringMvcDispServlInit вместо web.xml. Также добавим Java класс для настройки бинов вместо applicationContext.xml.
Также создадим сконфигурированную нами ранее дополнительную папку ресурсов resourcedir.
Заметьте, что директории в папке java названы как groupid и artifactid в pom файле, а после папки с названием artifactid (в нашем случае firstMavenWebApp), уже специфические папки с исходниками – config, controller и т.д. Так желательно называть, как говорилось ранее.
Также, как видим, создана страница somePage, к которой будет происходить переход через SimpleController.java.
Применение изменений в pom файле
Чтобы изменения в pom файле вступили в силу в нашем проекте, то есть скачались и добавились в наш проект все зависимости, плагины и применились другие настройки сборки, нужно нажать:
Начнется скачивание зависимостей из интернета. После этого они добавятся в наш проект и мы сможем ими смело пользоваться при программировании.
Настройка DispatcherServlet
Давайте настроим Java версию web.xml. Настроим DispatcherServlet подобным образом, как мы это делали в web.xml:
package com.mavenwebapps.firstMavenWebAp.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
//Этот класс вместо web.xml. Здесь конфигурируем
//DispatcherServlet как мы это делали в web.xml
//только Java кодом.
public class MySpringMvcDispServlInit
extends AbstractAnnotationConfigDispatcherServletInitializer {
//Для этого переопределяем методы класса с названием
//AbstractAnnotationConfigDispatcherServletInitializer.
//Пишем вот такой метод)
@Override
protected Class>[] getRootConfigClasses() {
return null;
}
@Override
protected Class>[] getServletConfigClasses() {
//Помним что в web.xml мы указывали параметром
//сервлету имя файла конфигурации бинов.
//Здесь тоже передаем имя этого файла
//только в данном случае как показано ниже.
return new Class>[] { JavaSpringConfig.class };
}
@Override
protected String[] getServletMappings() {
//И также как и в web.xml задаем путь по которому
//происходит переход к DispatcherServlet.
//”/” значит по корневому пути, то есть по пути
//http://localhost:8080/firstMavenWebProject/
return new String[] { “/” };
}
}
Настройка applicationContext
Давайте теперь в файлике для настройки спринг, как мы уже делали это раньше, настроим путь к директории, в которой будут искаться классы с аннотациями по которым будут создаваться бины, то есть путь com.MavenWebAps.firstMavenWebAp.
Здесь же настроим путь к папке с View. Это мы уже тоже делали раньше.
package com.MavenWebAps.firstMavenWebAp.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
//Это класс конфигурации спринг бинов
//вместо applicationContext.xml.
@Configuration
@EnableWebMvc
@ComponentScan(basePackages =”com.MavenWebAps.firstMavenWebAp”)
public class JavaSpringConfig {
//Здесь также как мы делали в xml создаем бин,
//который определяет путь к вьюхам.
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver =
new InternalResourceViewResolver();
viewResolver.setPrefix(“/WEB-INF/jsp/”);
viewResolver.setSuffix(“.jsp”);
return viewResolver;
}
}
//То есть в нашем проекте не осталось xml ВООБЩЕ.
Настройка контроллера
Создадим контроллер, в котором определим, что по корневому пути, то есть по http://localhost:8080/firstMavenWebAp/, будет происходить переход к somePage.jsp
package com.MavenWebApps.firstMavenWebApp.controller;
import org.springframework.stereotype.Controller;
@Controller
public class SimpleController {
@GetMapping(“/”)
public String goSomePage() {
return “somePage”;
}
}
Проверка работы приложения
После этого запускаем приложение стандартным образом и видим содержимое somePage.jsp: