springboot项目继承nacos后正常启动没问题,jar启动找不到配置文件

        这个我先说一下解决方案,就是在启动命令中增加一段代码:java  -Dfile.encoding=utf-8 -jar xxxx.jar 。这样就解决了,有的说配置文件中不能有中文,这个倒是没影响,只不过bootstrap中有中文敲完命令回车会等半天。

        如果就上面那样我也不至于写一个文章记录,下面记录一下奇葩的事。

        首先我也得弄个jar试试,但是eclipse-run-maven build 就是不过,报: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources。反正在网上一顿查最后能打包了。

        打包之后就java -jar xxx.jar启动,然后就报找不到配置。然后取网上找呗,然后pom里增加spring-cloud-starter-bootstrap这个的,加完确实找到了,但是启动的时候报了循环依赖的问题。一看不对啊,springboot2.6.x之后才不给解决这个的,我的2.3.12怎么会报这个。马上去jar中看了一下,他喵的,jar中的springboot版本竟然是2.6.8。卧槽,这是为毛。

        我启动的项目pom中parent是我们自定义的一个父项目,父项目中引入的spring-boot-starter-parent。然后去网上找一堆也没解决,最后把本地maven仓库中父项目的版本文件夹都删了,在编译竟然好了,然后把网上找的加的那些东西都去了,果然没问题。 

        总结:问题的直接原因是打包的springboot版本和pom中不一样。

        卧槽,坑了我一天。

### 配置Nacos服务发现 为了使Spring Boot项目能够利用Nacos的服务发现特性,在应用的主类上需添加`@EnableDiscoveryClient`注解来启用服务注册与发现的功能[^2]。 ```java import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @EnableDiscoveryClient public class NacosDiscoveryApplication { public static void main(String[] args) { SpringApplication.run(NacosDiscoveryApplication.class, args); } } ``` 此设置允许应用程序作为客户端向Nacos服务器注册自己,并能感知其他已注册的服务实例。 ### 添加依赖项 确保项目的`pom.xml`文件中包含了必要的依赖,以便支持与Nacos的交互。这通常涉及引入`spring-cloud-starter-alibaba-nacos-discovery`库以及任何特定于使用的版本管理器所需的条目。 ### 配置application.properties/yml 接着是在`application.properties`或`application.yml`配置文件里指定连接Nacos所需的信息,比如地址和其他参数: #### application.yml 示例: ```yaml spring: cloud: nacos: discovery: server-addr: localhost:8848 # Nacos Server 地址 ``` 上述配置指定了本地运行的一个Nacos实例的位置;对于生产环境,则应替换为实际部署位置。 ### 使用Nacos进行配置管理 除了服务发现外,Nacos还提供了一套完整的解决方案来进行外部化配置管理。要让Spring Boot读取来自Nacos的数据源中的属性值,可以借助`spring-cloud-starter-alibaba-nacos-config`模块并做如下调整: #### Maven Dependency (如果尚未存在): ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` #### Bootstrap Configuration (`bootstrap.properties` or `bootstrap.yml`) 创建一个新的引导配置文件用于加载远程配置前缀下的键/值对: ```yaml spring: application: name: example-service-name cloud: nacos: config: server-addr: localhost:8848 file-extension: yaml ``` 这里定义了一个名为`example-service-name`的应用程序名称,它会尝试从Nacos获取`.yaml`格式化的配置数据。 一旦完成这些步骤之后,重启应用程序即可自动同步最新的配置更改而无需重新打包发布新版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值