首页 新闻 赞助 找找看

springcloud使用nacos配置中心不读取nacos取配置

0
悬赏园豆:30 [已关闭问题] 关闭于 2022-03-26 22:05

参考官方例子编写配置

https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.x/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/readme-zh.md

## 环境代码:

pom:

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2021.0.1</spring-cloud.version>
    </properties>

    <dependencies>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- openfeign 远程调用 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--openfeign 需要 loadbalancer -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
        </dependency>

        <!-- Nacos 服务注册发现   注册中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- Nacos 配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.1.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
                <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>

bootstrap.properties

spring.cloud.nacos.config.server-addr=192.168.1.104:8848
spring.application.name=coupon

CouponController.java

@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    /** 从 Nacos 配置中心读取配置 */
    @Value("${coupon.user.name}")
    private String userName;

    @Value("${coupon.user.age}")
    private Integer userAge;

    @RequestMapping("/test")
    public R test() {
        return R.ok().put("name", userName).put("age",userAge);

    }
}

application.properties

# 给配置中心测试的配置字段
coupon.user.name=zhansan
coupon.user.age=19

 

## 问题描述

项目启动无报错,但是不能读取到Nacos中配置的数据,而且似乎是根本没有连接到Nacos(注册中心功能可以正常注册),因为如果注释掉application.propertis中的属性 coupon.user.name 则会直接报错,提示@Value("${coupon.user.name}") 读不到配置;

Nacos Config Starter 实现了 org.springframework.cloud.bootstrap.config.PropertySourceLocator接口,并将优先级设置成了最高。

在 Spring Cloud 应用启动阶段,会主动从 Nacos Server 端获取对应的数据,并将获取到的数据转换成 PropertySource 且注入到 Environment 的 PropertySources 属性中,所以使用 @Value 注解也能直接获取 Nacos Server 端配置的内容。

根据上面官方例子中的原理的说明 Nacos Config Starter 实现PropertySourceLocator接口,而我在其实现类中debug并没有执行,由此判断是可能没有连接Nacos, 有熟悉这块的可以给点意见吗?

再就是maven依赖中的一个问题, 这里点击spring-cloud-starter-alibaba-nacos-config进入其pom中有依赖是爆红的,而且.m2/repository 中确实是没有爆红的这些jar包,不知道这个问题是否有影响;

导致Nacos中有些配置类 @ConditionalOnClass 没有生效。

        <!-- Nacos 配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

小鸣Cycling的主页 小鸣Cycling | 菜鸟二级 | 园豆:350
提问于:2022-03-25 22:45
< >
分享
所有回答(1)
0

原因是 最新版本(2021.0.1.0)移除了 spring-cloud-starter-bootstrap 的支持,改用 spring.config.import

 解决方法: https://github.com/alibaba/spring-cloud-alibaba/pull/2349
@DanielLiu1123 DanielLiu1123 released this 26 days ago

⭐️ Features / Enhancements

  • [Nacos Config] Support spring.config.import (#2349)
  • [Nacos Config] Remove dependency spring-cloud-starter-bootstrap (#2349)

 

小鸣Cycling | 园豆:350 (菜鸟二级) | 2022-03-26 22:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册