У меня есть весенний проект mvc, и я хочу преобразовать его в весеннюю загрузку. Итак, я изменил проект:
Файл POM:
<modelVersion>4.0.0</modelVersion>
<groupId>spring-boot</groupId>
<artifactId>spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<start-class>com.ApplicationStartup</start-class>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.49</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.49</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>1.5.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
Стартовый (основной) класс:
Только эти изменения я сделал. Использование этого StartupApplication запускается, но приложение не открывается. Я хочу открыть jsp как приветственный файл.
Структура каталога проекта:
Итак, как вызвать jsp при весенней загрузке на основе моего кода или шагов миграции spring mvc в загрузку на основе моей структуры проекта. Заранее спасибо.
Используя этот код, я получил такой вывод:

Что вы имели в виду про Using this StartupApplication is starting but application is not open? Как насчет того, чтобы открыть браузер и ввести URL-адрес?
После запуска просто покажите результат, как указано выше, но браузер не открывается
spring.mvc.view.prefix: / WEB-INF / jsp / и spring.mvc.view.suffix: .jsp Указывали ли вы эти свойства в файле yaml / properties вашего приложения?




-Это не полный / точный ответ на ваш вопрос-
Я сделал миграцию с весны на весеннюю загрузку для разных проектов. По моему опыту, я бы посоветовал создать простое приложение с пружинной загрузкой, а затем переместить необходимые вещи во вновь созданное приложение. Так что это будет чистый код без каких-либо ненужных файлов / зависимостей.
Например, структура папок, которой вы следуете, следующая: src/com/..class files here и есть src/main/java, который кажется пустым. Где, как при весенней загрузке, ваши файлы классов будут только в src/main/java. Существует путь по умолчанию для каждого каталога, такого как resources, статические файлы, properties, test и т. д.
Вы можете создать простое приложение с весенней загрузкой (вы можете скачать zip-файл) https://start.spring.io/ здесь. Не забудьте добавить необходимые зависимости в предоставленное текстовое поле. И затем успешно запустите его с примером бла-бла, что бы они ни предоставили.
Если вы создадите spring -boot непосредственно из своего старого проекта, там будет так много нежелательных файлов и зависимостей, что, наконец, вы не сможете определить, действительно ли это требуется или нет. Также структура по умолчанию будет другой, и да, обслуживание было бы очень утомительной задачей. Кроме того, двигаясь дальше, вы будете продолжать получать другие ошибки / проблемы, подобные этой (проблема с jsp), если вы используете тот же проект.
Сначала вам может показаться это утомительной задачей (метод, который я упомянул выше), но вам будет легко, когда вы начнете его использовать.
Spring Boot: разработка Веб-приложения. Features
Когда вы конвертируете проект из Spring MVC Applcaiotn в Spring BOOT Appication,
вам необходимо выполнить следующие действия.
XML configuration использует только Java Configuration. Таким образом, нет необходимости использовать файл web.xml, мы можем его устранить.Для страницы приветствия «Сначала выполняется поиск файла index.html в настроенных расположениях статический контент. Если он не найден, он ищет шаблон индекса. ResourceUrlEncodingFilter, который автоматически настраивается для Thymeleaf и FreeMarker.
Для JSP вам необходимо настроить шаблон jsp как InternalResourceViewResolver
Этот ViewResolver позволяет нам устанавливать такие свойства, как prefix или suffix, для имени представления, чтобы сгенерировать окончательный URL-адрес страницы просмотра. src/main/resources/templates | src/main/webapp/WEB-INF
@Configuration
public class JspViewResolverConfig {
@Bean
public ViewResolver jspViewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/pages/");
viewResolver.setSuffix(".jsp");
viewResolver.setContentType("text/html");
return viewResolver;
}
}
Я бы посоветовал изменить структуру папок на "рекомендованную весеннюю загрузку".