springcloud config中使用@value(name)报注入错误的解决办法

springcloud config 有服务端与客户端,服务端主要就是从远程git获取配置文件的,所谓的客户端其实就是我们其他的功能性的微服务,这些微服务在启动或者正在运行的时候会像config服务获取配置信息。
如果客户端报注入错误,一般有三个原因:
1:检查git上的配置文件中是否有$value{name}中的name
2:切记,作为config客户端,pom文件中一定不能有config-server这个依赖,这个依赖只能在config客户端才能使用,而且 服务端也不能有starter-config那个依赖
3:检查git上的文件名是否跟当前微服务的名称一致,例如当前微服务在注册中心配置的名称为new-service,你的git上的配置文件只能是new-service-dev.properties或者new-service-dev.yml,不能为其他名字

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
可以通过在Nacos配置心上配置两个不同的配置文件,分别对应MySQL和Oracle数据源的配置。在Spring Cloud应用,通过使用Spring Cloud Config客户端,将这些配置文件下载到本地,并在应用程序进行解析和使用。 以下是一个简单的示例,假设我们有两个数据源:MySQL和Oracle。我们可以在Nacos配置心上创建两个不同的配置文件:mysql.properties和oracle.properties。示例配置如下: mysql.properties: ``` jdbc.url=jdbc:mysql://localhost:3306/mysql_db jdbc.username=mysql_user jdbc.password=mysql_password ``` oracle.properties: ``` jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl jdbc.username=oracle_user jdbc.password=oracle_password ``` 然后,在Spring Cloud应用程序,我们可以使用以下代码来加载这些配置文件,并在应用程序使用它们: ```java @Configuration @RefreshScope public class DataSourceConfig { @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean(name = "mysqlDataSource") @Primary public DataSource mysqlDataSource() { return DataSourceBuilder.create() .url(url) .username(username) .password(password) .driverClassName("com.mysql.jdbc.Driver") .build(); } @Bean(name = "oracleDataSource") public DataSource oracleDataSource() { return DataSourceBuilder.create() .url(url) .username(username) .password(password) .driverClassName("oracle.jdbc.driver.OracleDriver") .build(); } } ``` 在这个例子,我们使用@Value注释来注入配置文件的属性。然后,我们可以使用DataSourceBuilder来构建数据源对象,并将其声明为Spring Bean。通过在@Bean注释设置名称,我们可以在应用程序引用这些数据源对象。 需要注意的是,使用Spring Cloud Config客户端从Nacos配置心下载配置文件的具体细节可能会有所不同,具体取决于您的应用程序和环境。但是,上述示例应该可以帮助您了解如何在Spring Cloud应用程序使用多个数据源配置。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值