试图从Spring MVC迁移到Spring Boot

时间:2018-12-26 08:49:38

标签: java spring spring-mvc spring-boot

我有一个spring mvc项目,想转换成spring boot。所以我改变了项目:

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>

启动(主)类:

enter image description here

只有这些更改,我才完成。正在使用此StartupApplication启动,但应用程序未打开。我想打开一个jsp作为欢迎文件。

项目目录结构:

enter image description here

因此如何根据我的代码在spring boot中调用jsp或根据我的项目结构将spring mvc迁移到boot中的步骤。提前致谢。 使用此代码,我得到这样的输出: enter image description here

2 个答案:

答案 0 :(得分:0)

-这不是您问题的完整/确切答案-

我已经完成了从春季到春季启动的不同项目的迁移。根据我的经验,我建议创建一个简单的spring-boot应用程序,然后将所需的内容移动到新创建的应用程序中。这样它将是干净的代码,而没有任何不需要的文件/依赖项。

例如,您遵循的文件夹结构是:src/com/..class files here,其中有src/main/java似乎是空的。与春季启动时一样,您的类文件将仅在src/main/java中。每个目录都有默认路径,例如resources,静态文件,propertiestest等。

您可以在此处 https://start.spring.io/ 创建一个简单的spring-boot应用程序(可以下载zip文件)。请不要忘记在提供的文本框中添加必需的依赖项。然后使用示例提供的示例成功运行它。

如果直接从旧项目创建spring-boot,那么会有许多不需要的文件和依赖项,最后您将无法确定是否确实需要它。默认结构也会有所不同,是的,维护工作将非常繁琐。另外,如果继续使用同一项目,您将继续遇到类似这样的其他错误/问题(您的jsp问题)。

起初,您可能会觉得它是一个繁琐的任务(我上面提到的方法),但是一旦开始使用它,对您来说将很容易。

答案 1 :(得分:0)

Spring Boot:开发Web Applications Features

将项目形式从Spring MVC Applcaiotn转换为Spring BOOT Appication时,
您需要按照以下步骤操作。

  • 首先,我们需要将war文件部署到Server中,以便为应用程序提供服务。与Spring Boot一起,Embed Tomcat服务器在哪里。因此,需要创建一个war文件进行部署。它会自动使用嵌入服务器并为应用程序提供服务器。
  • 第二个优点是无需使用XML configuration,而仅使用Java Configuration。因此,无需使用web.xml文件,我们就可以消除它。

对于欢迎页面«,它首先在已配置的static content位置中查找index.html文件。如果未找到,则寻找索引模板。已为ThymeleafResourceUrlEncodingFilter自动配置的FreeMarker

对于JSP,您需要将jsp模板配置为InternalResourceViewResolver
ViewResolver允许我们将prefixsuffix之类的属性设置为视图名称,以生成最终的视图页面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;
    }
}