当前位置: 首页 > 知识库问答 >
问题:

尝试从Spring mvc迁移到Spring boot

崔涵亮
2023-03-14

我有一个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>

启动(主)类:

只有这些改变,我做到了。使用此启动程序应用程序正在启动,但未打开。我想打开一个jsp作为欢迎文件。

项目目录结构:

共有2个答案

胡飞鹏
2023-03-14

Spring Boot :开发Web应用程序。特征

当您将项目从Spring MVC应用程序转换为Spring BOOT应用程序时,< br >您需要遵循以下步骤。

  • 首先,我们需要将 war 文件部署到服务器中,以便为应用程序提供服务。作为Spring Boot,嵌入Tomcat服务器在哪里出现。因此,需要创建一个 war 文件进行部署。它自动使用嵌入服务器和服务器的应用程序。
  • 第二个优点是不需要使用XML配置,只使用Java配置。因此,无需使用web.xml文件,我们可以消除它。

对于欢迎页面的«它首先在配置的静态内容位置中查找索引.html文件。如果未找到,则查找索引模板。ResourceUrlEncodingFilter,它是为 ThymeleafFreeMarker 自动配置的。

对于JSP,您需要将JSP模板配置为InternalResourceViewResolver
此ViewResolder允许我们为视图名称设置属性,如前缀后缀,以生成最终的视图页面URLsrc/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;
    }
}
宋劲
2023-03-14

-这不是您问题的完整/准确答案-我已经为不同的项目完成了从Spring到sping-boot的迁移。根据我的经验,我建议创建一个简单的sping-boot应用程序,然后将您需要的东西移动到新创建的应用程序。这样它将是干净的代码,没有任何不需要的文件/依赖项。

例如,您遵循的文件夹结构是:src/com/... class file在这里并且有src/main/java似乎是空的。在Spring启动中,您的类文件将仅在src/main/java中。每个目录都有默认路径,如资源、静态文件、属性test等。

您可以在这里https://start.spring.io/创建一个简单的Spring启动应用程序(您可以下载zip文件)。请不要忘记在提供的输入框中添加所需的依赖项。然后使用他们提供的示例等等成功运行它。

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

起初,你可能会觉得这是一项乏味的任务(我上面提到的方法),但一旦你开始使用它,对你来说就很容易了。

 类似资料:
  • 因此,我试图将我的build.gradle文件从一个简单的玩具应用程序从Groovy迁移到新的Kotlin dsl for Gradle。我已经能够成功地迁移我的项目build.gradle文件,并且我还创建了一个buildSrc目录,该目录具有Kotlin文件中的所有版本号等等。到目前为止,gradle正在成功地同步和构建。但是,当我尝试将应用程序build.gradle转换为Kotlin(通过

  • 问题内容: 我们的Oracle数据库遇到了严重的性能问题,我们想尝试将其迁移到基于MySQL的数据库(直接使用MySQL,或者最好是Infobright)。 问题是,在我们实际上不知道新数据库的所有功能是否符合我们的需求之前,我们需要让旧系统和新系统至少重叠数周(如果不是几个月)。 因此,这是我们的情况: Oracle数据库由多个表组成,每百万行。白天,实际上有成千上万的语句,我们无法停止迁移。

  • 问题内容: 在我的应用程序中,我从UIWebView迁移到WKWebView,如何为WKWebView重写这些功能? 和 问题答案: UIWebView => WKWebView等效 关于您可以写: 对于:

  • 考虑: 为什么,我怎么才能让它起作用? 我的CPU是i5-10210u(支持AVX-256)。在X64版本/调试中运行。

  • TypeScript不是凭空存在的。 它从JavaScript生态系统和大量现存的JavaScript而来。 将JavaScript代码转换成TypeScript虽乏味却不是难事。 接下来这篇教程将教你怎么做。 在开始转换TypeScript之前,我们假设你已经理解了足够多本手册里的内容。 如果你打算要转换一个React工程,推荐你先阅读React转换指南。 如果你在写纯JavaScript,你大

  • 我正在将我的应用程序从Log4J1.2迁移到Log4J2-2.8.1版本。下面是log4j.properties文件中现有的1.x配置。