我有一个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>
启动(主)类:
只有这些更改,我才完成。正在使用此StartupApplication启动,但应用程序未打开。我想打开一个jsp作为欢迎文件。
项目目录结构:
因此如何根据我的代码在spring boot中调用jsp或根据我的项目结构将spring mvc迁移到boot中的步骤。提前致谢。 使用此代码,我得到这样的输出:
答案 0 :(得分:0)
-这不是您问题的完整/确切答案-
我已经完成了从春季到春季启动的不同项目的迁移。根据我的经验,我建议创建一个简单的spring-boot应用程序,然后将所需的内容移动到新创建的应用程序中。这样它将是干净的代码,而没有任何不需要的文件/依赖项。
例如,您遵循的文件夹结构是:src/com/..class files here
,其中有src/main/java
似乎是空的。与春季启动时一样,您的类文件将仅在src/main/java
中。每个目录都有默认路径,例如resources
,静态文件,properties
,test
等。
您可以在此处 https://start.spring.io/ 创建一个简单的spring-boot应用程序(可以下载zip文件)。请不要忘记在提供的文本框中添加必需的依赖项。然后使用示例提供的示例成功运行它。
如果直接从旧项目创建spring-boot,那么会有许多不需要的文件和依赖项,最后您将无法确定是否确实需要它。默认结构也会有所不同,是的,维护工作将非常繁琐。另外,如果继续使用同一项目,您将继续遇到类似这样的其他错误/问题(您的jsp问题)。
起初,您可能会觉得它是一个繁琐的任务(我上面提到的方法),但是一旦开始使用它,对您来说将很容易。
答案 1 :(得分:0)
Spring Boot:开发Web Applications。 Features
将项目形式从Spring MVC Applcaiotn转换为Spring BOOT Appication时,
您需要按照以下步骤操作。
XML configuration
,而仅使用Java Configuration
。因此,无需使用web.xml
文件,我们就可以消除它。对于欢迎页面«,它首先在已配置的static content位置中查找index.html
文件。如果未找到,则寻找索引模板。已为Thymeleaf
和ResourceUrlEncodingFilter
自动配置的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;
}
}