- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 maven 中使用 SpringBoot 1.3.5。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2016-08-18 15:27:58.771 INFO 26626 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@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)
@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);
}
}
}
最佳答案
我只是设法通过一个简单的 hello-world 服务并使用 Rebuild project
来重现它。几次,因为它只是偶尔复制一次。我的预感是,在 IJ 有机会完全清理和重建之前,开发工具会发现发生了变化。可能一旦资源发布并且在从我看到的输出目录中编译类之前,开发工具就会开始重新加载尚未存在的类......
按照这个假设,我查看了日志和类时间戳,在开发工具开始重新加载上下文的时间和我的类写入磁盘的时间之间大约有 1 秒的间隔。显然我的 @PostConstruct
都没有出现日志并且 spring 的自动配置找不到我的类...
作为解决方法,您可以使用 trigger-file .按照链接中的建议将其作为全局配置添加到您的主目录中,或者添加到您的 application.properties
中。文件。此外,由于对此文件的任何更改(创建、删除、修改)都会触发重新启动,并且 Rebuild project
清理输出目录,你必须定义一个额外的路径来查找这个文件。因此,假设我们有一个常规的 IJ spring boot 运行配置,在 application.properties
中有以下 2 个配置。 :
# name of the file to trigger a restart
spring.devtools.restart.trigger-file=restarttrigger
# where else to look for it. Also . evaluates to the app's base dir
spring.devtools.restart.additional-paths=.
maven compile
而不是
Rebuild project
因为在进行重建时 IJ 不会调用 maven(或者我还没有找到如何做到这一点)。请在下面找到一个简单的配置
based on the fact that :
(Note: In Maven 2.0.5 and above, multiple goals bound to a phase are executed in the same order as they are declared in the POM, however multiple instances of the same plugin are not supported. Multiple instances of the same plugin are grouped to execute together and ordered in Maven 2.0.11 and above).
compile
phase ,所以我们添加一个小任务来生成
trigger-file使用
application.properties
文件(或其他任何东西)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<!-- first, compile all we need -->
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
</plugin>
<plugin>
<!-- then, generate the trigger-file so dev-tools will restart -->
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<copy file="${project.basedir}/src/main/resources/application.properties"
toFile="${project.basedir}/restarttrigger" overwrite="true" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
FileSystemWatcher.scan()
,有一个
do-while
循环可以解释为:虽然自上次检查以来文件系统上仍在进行更改,但等待(可配置的)时间并再次验证
private void scan() throws InterruptedException {
Thread.sleep(this.pollInterval - this.quietPeriod);
Map<File, FolderSnapshot> previous;
Map<File, FolderSnapshot> current = this.folders;
do {
previous = current;
current = getCurrentSnapshots();
Thread.sleep(this.quietPeriod);
}
while (isDifferent(previous, current));
if (isDifferent(this.folders, current)) {
updateSnapshots(current.values());
}
}
quietPeriod
可通过
spring.devtools.restart.quiet-period
进行配置属性,但也根据上面提到的来源,它必须是小于
pollInterval
的值可通过
spring.devtools.restart.poll-interval
配置.因此,玩弄这些设置,我得到了一个不错的结果:
# Amount of time (in milliseconds) to wait between polling for classpath changes.
spring.devtools.restart.poll-interval=3000
# Amount of quiet time (in milliseconds) required without any classpath changes before a restart is triggered.
spring.devtools.restart.quiet-period=2999
关于Spring Boot - DevTools - RestController 在重建项目时并不总是映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39019938/
关于 SpringBoot 应用程序的小问题,以及如何获取用 @RestController 注释的类列表请。 我有一个简单的 SpringBoot 应用程序,其中有几个我自己的 @RestContr
我正在使用 spring 4.2 创建一些restfull web 服务。 但我们意识到,当用户输入错误的非强制性 @RequestParam 之一时,我们没有得到他传递的参数未知的错误。 就像我们有
我正在尝试向服务器发送一个 http 帖子,但我从我的 Controller 收到一个格式错误的 url 异常 Controller 代码 public static final String RES
我有一个抽象类PluginTemplate,由3个子类继承 PluginTemplateA、PluginTemplateB、PluginTemplateC。 我有一个其他类,其中有一个包含 Plugi
是否可以在Java配置(带有@Configuration注释的类)单独定义一个Spring RestController(@RestController注释的类)在标有 @Bean 的方法中)? 我有
我在使用 REST 服务器和 REST 客户端的应用程序中使用 Spring Boot。当我让人们选择 URL 映射时,就会出现问题,因为那时我需要使用此 URL 映射动态创建 REST Contro
我一直在尝试扩展这个 Spring/Hibernate/JPA sample code on Github 虽然我让它工作正常,但我正在尝试添加一个新的@RestController 以获取所有 sh
我正在使用 spring-rest 创建一些 @RestController servlet。该应用程序不在网络服务器上运行,而是作为带有嵌入式 tomcat 的简单命令行工具运行。 它们中的大多数应
是否有可能在 Springboot 中有两个不同的 @RestControllers 使用不同的 MappingJackson2HttpMessageConverter ? ...还是 Mapping
我正在尝试使用新的 Spring 4.0 @RestController 从 Controller 返回一个简单的文本响应: @RestController @RequestMapping(value
考虑以下代码: @RestController @RequestMapping("/timeout") public class TestController { @Autowired
嗨,我的示例中有一个简单的 RestController: @RestController public class PersonController { @RequestMapping(na
tl; dr一个RestController如果在Docker容器中运行,则可以正确回答,而另一个则不能。 该服务有两个API alive @CrossOrigin(origins = "*", ma
我知道有很多question s 涵盖了该主题,但我不知道如何实现以下要求。 我想上传文件列表,每个文件都包含一些额外信息。在 Java 世界中,这意味着以下内容: @NoArgsConstructo
是否可以通过编程方式控制@RestController来启用或禁用它?我不想只在每个 @RequestMapping 方法中编写代码来执行某种 if (!enabled) { return 404Ex
背景 这是@RestController中定义的方法,它从磁盘读取文件然后流回。 @RequestMapping(value = "/bill", method = RequestMethod.GET
我无法将完整的对象序列化为 Java API Rest。某些属性未在响应方法中返回。 我有一个像这样的对象: public class Localization { private Long
我有一个 Controller : @RestController @RequestMapping(value = UserRestController.REST_URL, produces = Me
我正在 Spring 中设置 RestController,但有一个不明确的映射问题。我不明白最后两个方法有什么歧义,因为请求映射和方法名称不同。当我从最后一个方法中删除方法规范时,问题就不再存在了。
我正在使用 Spring Boot 和 @RestController 以及 Java 8 实现 REST API。其中一个 Controller 方法需要调用另一个第 3 方 REST API 服务
我是一名优秀的程序员,十分优秀!