2015-10-20 48 views
3

我有一個使用配置服務器加載其屬性的春季啓動應用程序。這些屬性存在於配置服務器項目的src.main/resources/config目錄中。春季配置服務器不刷新屬性

當我點擊寧靜的端點時,屬性被加載的很好,然後當我改變它的屬性時,它仍然顯示舊的屬性值。我如何在調用URL時調用刷新端點?我是否在config-service或hello-service上調用它?雖然從它看起來已經映射他們仍然拋出這個405錯誤日誌

配置服務器

http://localhost:8889/refresh 

或打招呼服務

http://localhost:9001/refresh 

我總是得到以下

Whitelabel Error Page 

This application has no explicit mapping for /error, so you are seeing this as a fallback. 

Tue Oct 20 10:48:03 BST 2015 
There was an unexpected error (type=Method Not Allowed, status=405). 
Request method 'GET' not supported 

在src/main/resources/config的config-server中,我有以下文件

hello-service.properties

#very-so-much=testing 
very-so-much=testing second time 
second-time=checking again 

在我招呼服務我有folloiwng

application.class

@Bean 
    @RefreshScope 
    CustomerProps customerProps(@Value("${very-so-much}") String exclamations, @Value("${second-time}") String test) { 
     CustomerProps p = new CustomerProps(); 
     //p.setText(exclamations); 
     p.setText(test); 
     return p; 
    } 

Controller類

// @Value("${very-so-much}") 
// private String prop; 
//  
// @Value("${second-time}") 
// private String anotheerProp; 

    @Autowired 
    public GreetingController(CustomerRepository repository, GridFsTemplate gridFileSystem, CustomerProps props) { 
     this.repository = repository; 
     this.fs = gridFileSystem; 
     this.props = props; 
    } 

    @RequestMapping("/greeting") 
    public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) { 
     name = props.getText(); 
     return new Greeting(counter.incrementAndGet(), 
          String.format(template, name)); 
    } 

開始註冊日誌無花果服務器出現如下圖所示

2015-10-20 10:25:49.616 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/health],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(java.security.Principal) 
    2015-10-20 10:25:49.617 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/restart],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.context.restart.RestartMvcEndpoint.invoke() 
    2015-10-20 10:25:49.618 INFO 13120 --- [   main] 
o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint.value(java.util.Map<java.lang.String, java.lang.String>) 
    2015-10-20 10:25:49.618 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env/reset],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.util.Map<java.lang.String, java.lang.Object> org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint.reset() 
    2015-10-20 10:25:49.619 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/mappings],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
    2015-10-20 10:25:49.619 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/beans],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
    2015-10-20 10:25:49.620 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String) 
    2015-10-20 10:25:49.620 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
    2015-10-20 10:25:49.620 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/autoconfig],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
    2015-10-20 10:25:49.620 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/info],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
    2015-10-20 10:25:49.626 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/refresh],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke() 
    2015-10-20 10:25:49.628 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String) 
    2015-10-20 10:25:49.629 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
    2015-10-20 10:25:49.629 INFO 13120 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/configprops],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
    2015-10-20 10:25:49.697 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup 
    2015-10-20 10:25:49.710 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'refreshEndpoint' has been autodetected for JMX exposure 
    2015-10-20 10:25:49.712 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'restartEndpoint' has been autodetected for JMX exposure 
    2015-10-20 10:25:49.712 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'configurationPropertiesRebinder' has been autodetected for JMX exposure 
    2015-10-20 10:25:49.714 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'refreshScope' has been autodetected for JMX exposure 
    2015-10-20 10:25:49.715 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'environmentManager' has been autodetected for JMX exposure 
    2015-10-20 10:25:49.721 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager] 
    2015-10-20 10:25:49.751 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'restartEndpoint': registering with JMX server as MBean [org.springframework.cloud.context.restart:name=restartEndpoint,type=RestartEndpoint] 
    2015-10-20 10:25:49.760 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'refreshScope': registering with JMX server as MBean [org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope] 
    2015-10-20 10:25:49.768 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,type=ConfigurationPropertiesRebinder] 
    2015-10-20 10:25:49.787 INFO 13120 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'refreshEndpoint': registering with JMX server as MBean [org.springframework.cloud.bootstrap.config:name=refreshEndpoint,type=RefreshEndpoint] 
    2015-10-20 10:25:49.791 INFO 13120 --- [   main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0 
    2015-10-20 10:25:49.897 INFO 13120 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8889 (http) 
    2015-10-20 10:25:49.898 INFO 13120 --- [   main] doge.ConfigurationServerApplication  : Started ConfigurationServerApplication in 4.485 seconds (JVM running for 5.233) 
    2015 

端點和我打招呼,服務日誌顯示以下

2015-10-20 10:36:24.822 INFO 11564 --- [   main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot[email protected]2eea88a1: startup date [Tue Oct 20 10:36:21 BST 2015]; parent: org.spring[email protected]400cff1a 
2015-10-20 10:36:24.886 INFO 11564 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/customer],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto org.springframework.http.ResponseEntity<?> hello.GreetingController.add(hello.Customer) 
2015-10-20 10:36:24.887 INFO 11564 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/customer/add],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public hello.Customer hello.GreetingController.insertCustomer(java.lang.String,java.lang.String) 
2015-10-20 10:36:24.887 INFO 11564 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/customer/greeting],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public hello.Greeting hello.GreetingController.greeting(java.lang.String) 
2015-10-20 10:36:24.887 INFO 11564 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/customer/{lastName}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.http.ResponseEntity<?> hello.GreetingController.readCustomer(java.lang.String) 
2015-10-20 10:36:24.889 INFO 11564 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" 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) 
2015-10-20 10:36:24.889 INFO 11564 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[text/html],custom=[]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest) 
2015-10-20 10:36:24.914 INFO 11564 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-10-20 10:36:24.914 INFO 11564 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-10-20 10:36:24.947 INFO 11564 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-10-20 10:36:25.333 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/info],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.333 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/trace],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.334 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/restart],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.context.restart.RestartMvcEndpoint.invoke() 
2015-10-20 10:36:25.334 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/health],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(java.security.Principal) 
2015-10-20 10:36:25.334 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/pause],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke() 
2015-10-20 10:36:25.335 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String) 
2015-10-20 10:36:25.335 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.335 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/refresh],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke() 
2015-10-20 10:36:25.336 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/resume],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke() 
2015-10-20 10:36:25.336 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/dump],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.336 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/autoconfig],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.337 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint.value(java.util.Map<java.lang.String, java.lang.String>) 
2015-10-20 10:36:25.337 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env/reset],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.util.Map<java.lang.String, java.lang.Object> org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint.reset() 
2015-10-20 10:36:25.338 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String) 
2015-10-20 10:36:25.338 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.338 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/mappings],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.338 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/beans],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.338 INFO 11564 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/configprops],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-10-20 10:36:25.373 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup 
2015-10-20 10:36:25.380 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'refreshEndpoint' has been autodetected for JMX exposure 
2015-10-20 10:36:25.380 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'restartEndpoint' has been autodetected for JMX exposure 
2015-10-20 10:36:25.381 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'configurationPropertiesRebinder' has been autodetected for JMX exposure 
2015-10-20 10:36:25.381 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'refreshScope' has been autodetected for JMX exposure 
2015-10-20 10:36:25.382 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Bean with name 'environmentManager' has been autodetected for JMX exposure 
2015-10-20 10:36:25.384 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager] 
2015-10-20 10:36:25.398 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'restartEndpoint': registering with JMX server as MBean [org.springframework.cloud.context.restart:name=restartEndpoint,type=RestartEndpoint] 
2015-10-20 10:36:25.405 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'refreshScope': registering with JMX server as MBean [org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope] 
2015-10-20 10:36:25.411 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,type=ConfigurationPropertiesRebinder] 
2015-10-20 10:36:25.425 INFO 11564 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Located managed bean 'refreshEndpoint': registering with JMX server as MBean [org.springframework.cloud.bootstrap.config:name=refreshEndpoint,type=RefreshEndpoint] 
2015-10-20 10:36:25.431 INFO 11564 --- [   main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0 
2015-10-20 10:36:25.529 INFO 11564 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9001 (http) 

感謝

回答

4

由於這是一個POST請求,因而運行curl命令如下

curl -d {} http://localhost:9001/refresh 

確實刷新了我的屬性。