试图从Spring MVC中迁移到春季启动(trying to migrate from sprin

2019-10-30 05:24发布

我有一个Spring 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为欢迎文件。

项目目录结构:

因此,如何根据我的代码或基于我的项目stucture Spring MVC的迁移的步骤为开机调用JSP春天开机。 提前致谢。 使用此代码,我得到这样的输出:

Answer 1:

- 这是不是你的question-一个完整的/确切的答案

我已经做了迁移从春季到春季启动为不同的项目。 按我的经验,我建议创建一个简单的弹簧启动应用程序,然后将你需要的东西到新创建的应用程序。 因此,这将是干净的代码没有任何不需要的文件/依赖。

例如,你是以下文件夹结构是: src/com/..class files here并没有src/main/java ,这似乎是空的。 凡在春季启动,你的类文件将在src/main/java唯一。 有像每个目录的默认路径resources ,静态文件, propertiestest等。

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

如果直接从你的老项目中创建春季启动,所以很多不必要的文件和依赖会在那里,最后你不能确定其是否实际需要与否。 也默认结构将是不同的,是的,维修将是更繁琐的任务。 另外,移动,你会继续得到这样的,如果你使用同一项目其他错误/问题(你的jsp的问题)。

起初,你可能会觉得这是一个繁琐的任务(该方法我上面提到的),但一旦你开始使用它,它会是您轻松。



Answer 2:

春季启动:开发Web应用程序 。 Features

当你的项目形式Spring MVC的Applcaiotn转换成春BOOT器件的应用,
你需要遵循这些步骤。

  • 首先,我们需要war文件部署到服务器到以服务于应用。 凡为春天开机配备了嵌入Tomcat服务器的。 因此,需要建立一个war文件进行部署。 它会自动使用嵌入服务器和服务器应用程序。
  • 第二个优势是不需要使用XML configuration只使用Java Configuration 。 所以,没有必要使用web.xml文件,我们可以消除它。

为了欢迎页面的«它首先会查找index.html在配置文件中的静态内容的位置。 如果没有找到一个,它然后查找索引模板。 ResourceUrlEncodingFilter即自动设定ThymeleafFreeMarker

对于JSP需要配置JSP模板InternalResourceViewResolver
这个视图解析器允许我们设置如属性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;
    }
}


文章来源: trying to migrate from spring mvc to spring boot