Я добавил следующие зависимости в свой pom, чтобы я мог использовать Spring Cloud
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Добавил spring-cloud.version в качестве Finchley.RELEASE
Это бин, который я намерены обновить sh:
@Component
@ConfigurationProperties(ignoreUnknownFields = true,prefix="global")
@PropertySource(value = "${spring.config.location}")
@Getter
@Setter
@Validated
@RefreshScope
public class GeneralProperties {
private String mode;
}
Доступ к bean-компоненту в моем контроллере:
@RestController
@RequestMapping
@RefreshScope
public class AppController {
private static final AnalyticsLogger LOGGER = AnalyticsLoggerFactory
.getLogger(AppController.class);
@Autowired
SimulatorRequestProcessor simulatorRequestProcessor;
@Autowired
GeneralProperties generalProperties;
@ResponseBody
@PostMapping(value = "/api/mock-getdata", produces = "application/json")
public String fetchResponseBasedOnMode(@RequestHeader HttpHeaders headers,
@RequestBody String request) {
String response = null;
LOGGER.info("color: "+color);
switch (generalProperties.getMode()) {
//code
Свойства, установленные в конфигурации приложения:
spring.config.location=file:///var/lib/data/demo/config/generalConfig.properties
management.endpoints.web.exposure.include=refresh
Невозможно обновить sh значение режима. Может кто-то указать на ошибку в этом коде. Мои файлы свойств находятся в папке, которая не зафиксирована в git, поэтому я не использую spring-cloud-config.