diff --git a/build.gradle b/build.gradle index 896ff20..e24922b 100644 --- a/build.gradle +++ b/build.gradle @@ -17,8 +17,15 @@ ext { } dependencies { + implementation 'org.projectlombok:lombok' + + implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.cloud:spring-cloud-starter-config' + implementation 'org.springframework.boot:spring-boot-starter-actuator' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + } dependencyManagement { diff --git a/src/main/java/com/kakaoent/cpdd/config/client1/configuration/properties/ApiProperties.java b/src/main/java/com/kakaoent/cpdd/config/client1/configuration/properties/ApiProperties.java new file mode 100644 index 0000000..d51b11d --- /dev/null +++ b/src/main/java/com/kakaoent/cpdd/config/client1/configuration/properties/ApiProperties.java @@ -0,0 +1,16 @@ +package com.kakaoent.cpdd.config.client1.configuration.properties; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Setter +@Getter +@Component +@ConfigurationProperties(prefix = "apis") +public class ApiProperties { + private String gateway; // client config + private String point; // server config + +} diff --git a/src/main/java/com/kakaoent/cpdd/config/client1/controller/PropertyAPIController.java b/src/main/java/com/kakaoent/cpdd/config/client1/controller/PropertyAPIController.java new file mode 100644 index 0000000..9e9cbca --- /dev/null +++ b/src/main/java/com/kakaoent/cpdd/config/client1/controller/PropertyAPIController.java @@ -0,0 +1,29 @@ +package com.kakaoent.cpdd.config.client1.controller; + +import com.kakaoent.cpdd.config.client1.configuration.properties.ApiProperties; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; + +@RequestMapping("/api/v1") +@RestController +public class PropertyAPIController { + + private final ApiProperties apiProperties; + + public PropertyAPIController(ApiProperties apiProperties) { + this.apiProperties = apiProperties; + } + + @GetMapping("/apis/gateway") + public Mono getGatewayUrl() { + return Mono.just(apiProperties.getGateway()); + } + + @GetMapping("/apis/point") + public Mono getPointAPIUrl() { + return Mono.just(apiProperties.getPoint()); + } + +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..56737a6 --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,7 @@ +spring: + config: + activate: + on-profile: dev + +apis: + gateway: http://gw.application-dev.com \ No newline at end of file diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml new file mode 100644 index 0000000..27cb429 --- /dev/null +++ b/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +spring: + config: + activate: + on-profile: prod +apis: + gateway: http://gw.application.com \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8b13789..be05015 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1 +1,23 @@ +server: + port: 11081 +spring: + application: + name: app1 + profiles: + active: dev + group: + dev: dev,datasource-dev,redis-dev + prod: prod,datasource-prod,redis-prod + + config: + import: "optional:configserver:http://localhost:11080" + +logging.level: + org: TRACE + +management: + endpoints: + web: + exposure: + include: refresh