我使用SpringBoot 1.3.5和maven。SpringBoot - DevTools - RestController在重建项目时并不总是映射
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
而且devtools
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
我使用的IntelliJ IDEA 2016.2,此前2014年同样的问题。
我从Intellij Idea运行我的springboot应用程序,首先启动一切都很好加载和工作,我可以访问我的静态页面和我的2休息控制器的工作。
2016-08-18 15:27:58.771 INFO 26626 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot[email protected]469d0c02: startup date [Thu Aug 18 15:27:57 CEST 2016]; root of context hierarchy
2016-08-18 15:27:58.789 INFO 26626 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/authentication/introspect],methods=[GET]}" onto public com.myapp.models.TokenIntrospection com.myapp.resources.AuthenticationResources.introspectToken(java.lang.String)
2016-08-18 15:27:58.790 INFO 26626 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/configuration],methods=[GET]}" onto public com.myapp.models.AppConfiguration com.myapp.resources.ConfigurationResources.getConfiguration()
2016-08-18 15:27:58.792 INFO 26626 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2016-08-18 15:27:58.793 INFO 26626 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
因为简单的“做项目”不适用于静态重载工作得很好,我用“重建工程”,有时,当应用程序重新启动,我没有我的控制器映射,有时一个缺少,有时两人都失踪了。
我没有这个:(
编辑
@Morfic解决没有工作的任何线索,所以我用的IntelliJ本地服务器提供静态内容,并吞掉,livereload代替。弹簧开发工具
我不得不管理JS调用REST当我在开发模式,因为REST资源在localhost:8080,但我为static cs on localhost:63342,并在我的springboot中启用CORS(带有属性文件中的标志以启用CORS或不启用)。
@Configuration
public class CorsConfig extends WebMvcConfigurerAdapter {
@Value("${cors.enabled}")
private boolean corsEnabled;
@Override
public void addCorsMappings(CorsRegistry registry) {
super.addCorsMappings(registry);
if(corsEnabled) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "PUT", "POST", "DELETE", "OPTIONS")
.allowedHeaders("Origin", "X-Requested-With", "Content-Type", "Accept", "Authorization")
.allowCredentials(true)
.maxAge(3600L);
}
}
}
所以问题仍然悬而未决的工作解决方案。
Wahou很不错的解释,谢谢。 正如你可能猜测,我不能每次我想重新加载我的项目时播放文件创建/修改:( 而我没有解释它,但我用2个其余控制器springboot,需要经常重建静态文件 – Titmael
我试过这个,但没有改变问题:http:// stackoverflow。com/a/36839483/1243048 – Titmael
@Titmael我的建议是最简单和最安全的,因为在创建/编辑/删除文件时,所有内容都应该已经编译并可用。不幸的是,从我看到的它不可能通过Mavent,因为IJ并没有为构建过程调用它,但它可能有点自动化,在构建时创建一个artefact,如果你有一个后期制作的Ant目标复制触发器文件'感兴趣。 – Morfic