Пытаюсь перейти с весеннего mvc на весеннюю загрузку

У меня есть весенний проект 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>

Стартовый (основной) класс:

Пытаюсь перейти с весеннего mvc на весеннюю загрузку

Только эти изменения я сделал. Использование этого StartupApplication запускается, но приложение не открывается. Я хочу открыть jsp как приветственный файл.

Структура каталога проекта:

Пытаюсь перейти с весеннего mvc на весеннюю загрузку

Итак, как вызвать jsp при весенней загрузке на основе моего кода или шагов миграции spring mvc в загрузку на основе моей структуры проекта. Заранее спасибо. Используя этот код, я получил такой вывод: Пытаюсь перейти с весеннего mvc на весеннюю загрузку

Я бы посоветовал изменить структуру папок на "рекомендованную весеннюю загрузку".

smilyface 26.12.2018 10:01

Что вы имели в виду про Using this StartupApplication is starting but application is not open? Как насчет того, чтобы открыть браузер и ввести URL-адрес?

VinhNT 26.12.2018 10:09

После запуска просто покажите результат, как указано выше, но браузер не открывается

Abhishek Rana 26.12.2018 10:22

spring.mvc.view.prefix: / WEB-INF / jsp / и spring.mvc.view.suffix: .jsp Указывали ли вы эти свойства в файле yaml / properties вашего приложения?

smilyface 26.12.2018 10:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
3 964
2

Ответы 2

-Это не полный / точный ответ на ваш вопрос-

Я сделал миграцию с весны на весеннюю загрузку для разных проектов. По моему опыту, я бы посоветовал создать простое приложение с пружинной загрузкой, а затем переместить необходимые вещи во вновь созданное приложение. Так что это будет чистый код без каких-либо ненужных файлов / зависимостей.

Например, структура папок, которой вы следуете, следующая: 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,
вам необходимо выполнить следующие действия.

  • Во-первых, нам нужно развернуть файл войны на сервере для обслуживания приложения. В то время как Spring Boot поставляется с сервером Embed Tomcat. Итак, необходимо создать файл войны для развертывания. Он автоматически использует встроенный сервер и серверы приложения.
  • Второе преимущество - отсутствие необходимости. 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;
    }
}

Другие вопросы по теме