diff --git a/labx-26/labx-26-sc-zookeeper-config-demo/pom.xml b/labx-26/labx-26-sc-zookeeper-config-demo/pom.xml new file mode 100644 index 00000000..923d1974 --- /dev/null +++ b/labx-26/labx-26-sc-zookeeper-config-demo/pom.xml @@ -0,0 +1,56 @@ + + + + labx-26 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + labx-26-sc-zookeeper-config-demo + + + 2.2.4.RELEASE + Hoxton.SR1 + + + + + + + org.springframework.boot + spring-boot-starter-parent + ${spring.boot.version} + pom + import + + + org.springframework.cloud + spring-cloud-dependencies + ${spring.cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.cloud + spring-cloud-starter-zookeeper-config + + + + diff --git a/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/DemoApplication.java b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/DemoApplication.java new file mode 100644 index 00000000..c5953230 --- /dev/null +++ b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/DemoApplication.java @@ -0,0 +1,13 @@ +package cn.iocoder.springcloud.labx26.zookeeperdemo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class); + } + +} diff --git a/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/config/OrderProperties.java b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/config/OrderProperties.java new file mode 100644 index 00000000..10a303b7 --- /dev/null +++ b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/config/OrderProperties.java @@ -0,0 +1,52 @@ +package cn.iocoder.springcloud.labx26.zookeeperdemo.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "order") +public class OrderProperties { + + /** + * 订单支付超时时长,单位:秒。 + */ + private Integer payTimeoutSeconds; + + /** + * 订单创建频率,单位:秒 + */ + private Integer createFrequencySeconds; + +// /** +// * 配置描述 +// */ +// private String desc; + + public Integer getPayTimeoutSeconds() { + return payTimeoutSeconds; + } + + public OrderProperties setPayTimeoutSeconds(Integer payTimeoutSeconds) { + this.payTimeoutSeconds = payTimeoutSeconds; + return this; + } + + public Integer getCreateFrequencySeconds() { + return createFrequencySeconds; + } + + public OrderProperties setCreateFrequencySeconds(Integer createFrequencySeconds) { + this.createFrequencySeconds = createFrequencySeconds; + return this; + } + +// public String getDesc() { +// return desc; +// } +// +// public OrderProperties setDesc(String desc) { +// this.desc = desc; +// return this; +// } + +} diff --git a/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/controller/DemoController.java b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/controller/DemoController.java new file mode 100644 index 00000000..e45a0442 --- /dev/null +++ b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/java/cn/iocoder/springcloud/labx26/zookeeperdemo/controller/DemoController.java @@ -0,0 +1,44 @@ +package cn.iocoder.springcloud.labx26.zookeeperdemo.controller; + +import cn.iocoder.springcloud.labx26.zookeeperdemo.config.OrderProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +@RestController +@RequestMapping("/demo") +public class DemoController { + + @Autowired + private OrderProperties orderProperties; + + /** + * 测试 @ConfigurationProperties 注解的配置属性类 + */ + @GetMapping("/test01") + public OrderProperties test01() { + return orderProperties; + } + + @Value(value = "${order.pay-timeout-seconds}") // @NacosValue(value = "${order.pay-timeout-seconds}") + private Integer payTimeoutSeconds; + @Value(value = "${order.create-frequency-seconds}") // @NacosValue(value = "${order.create-frequency-seconds}") + private Integer createFrequencySeconds; + + /** + * 测试 @Value 注解的属性 + */ + @GetMapping("/test02") + public Map test02() { + Map results = new HashMap(); + results.put("payTimeoutSeconds", payTimeoutSeconds); + results.put("createFrequencySeconds", createFrequencySeconds); + return results; + } + +} diff --git a/labx-26/labx-26-sc-zookeeper-config-demo/src/main/resources/bootstrap.yaml b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/resources/bootstrap.yaml new file mode 100644 index 00000000..0ffeadd0 --- /dev/null +++ b/labx-26/labx-26-sc-zookeeper-config-demo/src/main/resources/bootstrap.yaml @@ -0,0 +1,14 @@ +spring: + application: + name: demo-application + + cloud: + zookeeper: + connect-string: 127.0.0.1:2181 + # Zookeeper 作为配置中心的配置项,对应 ZookeeperConfigProperties 配置类 + config: + root: /config # Zookeeper 数据存储的根节点,默认为 /config + default-context: application # 默认读取 Zookeeper 配置的目录,默认为 application + profile-separator: \, # 多环境目录分隔符,默认为 , + watcher: + enabled: true # 是否开启 Watch 功能,监听 Zookeeper 数据的变化。默认为 true,实现实时监听配置的更新 diff --git a/labx-26/pom.xml b/labx-26/pom.xml new file mode 100644 index 00000000..2f3c32d6 --- /dev/null +++ b/labx-26/pom.xml @@ -0,0 +1,18 @@ + + + + labs-parent + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + labx-26 + + + labx-26-sc-zookeeper-config-demo + + + diff --git a/pom.xml b/pom.xml index ff0293ff..cf309d00 100644 --- a/pom.xml +++ b/pom.xml @@ -99,6 +99,7 @@ + labx-26