为什么这个Spring Boot应用程序找不到主页面?
我试图创建一个最小的Spring Boot应用程序,允许我在前端使用ReactJS。
我想实现的
当我运行Spring Boot应用程序时,它应该显示一个包含React组件的页面。
项目的结构
你可以在这里找到源代码。
- Spring Boot应用程序类
-
控制器类
-
主HTML页面
-
反应代码
我得到了什么
当我
- 运行
mvn clean
mvn clean spring-boot:run`和 - 导航到
http://localhost:8080
,
我得到了404错误(见下文)。
我该如何解决?
笔记:
- 我从教程React.js和Spring Data REST中复制了这个方法。
- 不要告诉我摆脱Kotlin,它是不太可能是Kotlin导致的问题。
更新1(07.08.2017 22:17 MSK):
mvn clean spring-boot:run
的输出可以在这里找到。
更新2(07.08.2017 22:44 MSK):
在MyApp
类RestController
更改为Controller
并将main
方法移到里面并没有帮助。
目前, MyApp
类看起来像这样:
@SpringBootApplication @Controller open class MyApp { fun main(args: Array<String>) { SpringApplication.run(MyApp::class.java,*args) } }
现在我没有在Kotlin的经验,但我可以告诉你,你错过了下面的代码中的东西(除了有一个额外的RestController
注释)。
@SpringBootApplication @RestController open class MyApp { }
在Java中,此类除了具有以下静态方法运行的main
之外,还实现了ServletContextInitializer
:
SpringApplication.run(MyApp.class, args);
我希望这有帮助。
更新
尝试添加一个模板解析bean,现在不是唯一的方法来做到这一点,但值得一试,看起来像下面这样:
@Bean public ClassLoaderTemplateResolver yourTemplateResolver() { ClassLoaderTemplateResolver yourTemplateResolver = new ClassLoaderTemplateResolver(); yourTemplateResolver.setPrefix("templates/"); return yourTemplateResolver; }
并将以下行添加到您的application.properties中:
spring.thymeleaf.check-template-location=true spring.thymeleaf.suffix=.html
不要忘了将百里香输入您的POM:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>