背景

本来是一件很简单的事情,就是想在配置中心添加一层认证,但还是搞得很麻烦,麻烦到要专门做一篇小记来记录一下这坎坷的过程。

是这样子的,原来的项目:

springboot1.x + zuul-server


本来也没什么问题,但是做个filter 上去,死活就是不行,问题太多,没心情,也就没有记录下来了,连最简单的转发也可以提示:No route found for uri: /error

接下来,当然是去网上找方案。
看了很多篇,看到的结果基本千篇一律,并且都说得是非常的简单(虽然可能他们是真的没有遇到过这样的问题吧)

不可能个个人都这么顺利,就我遇到这么多问题的吧?

既然说得这么简单,那我照抄一份来试试!

OK, 有意思的来了。
完全照抄,但。。。。跑不起来,还是一样的问题: No route found for uri: /error

nice, 果然只有我才这么多问题。

反思一下,啥原因呢?

面向百度编程已经失效了么,还是在下的搜索技术就这么差,想要的答案永远都得不到么。

不纠结,现在面对的一个问题就是,为什么照抄还能错?究竟是哪里有区别?
版本, springboot的版本

嗯,除了这个原因,我想不到其它的原因了。

那怎么办呢,
换个版本呗?原来的项目已经无力回天了,如果要做成原来项目的一个模块的话,springboot大版本号要沿用,这个问题就还是解决不了。

只能另起炉灶。

嗯,换个 springboot 2.x , 继续照抄,好了。

我淦!

到现在还没能理解为什么项目要坚持用springboot1.x, (主要还是自己水平不够,遇到问题解决不了,不然管它什么版本呢)

嗯, 反正用 springboot2.x 才正式可用了,也不会出现讨厌的 : No route found for uri: /error 问题了。
(不过说来也奇怪,线上部署的 zuul-server 也是基于 springboot1.x 的, 但是为什么,它又可以呢,这个源码和他的究竟有什么不一样。啊,,,,无力追究了,反编译回来,也是不行,罢了罢了。不想理了)

最后再说一点

关于代码的内容,晚一些再提上来也罢。
不过记录一些新发现:
1、springboot2.x 可以,spirngboot1.x 不行(这是个个案,但网上的例子基本都是基于springboot2.x 的)

2、启动的配置文件,要读取配置中心的配置,配置文件内容一样,但 bootstrap.yml 可以, application.yml 不行(关于这个,也确实是有亿点儿好奇的, 但是。。。也没有深究)

3、引入配置中心client,, 要加上:

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
</dependency>

先记这么一点吧。