背景
本来是一件很简单的事情,就是想在配置中心添加一层认证,但还是搞得很麻烦,麻烦到要专门做一篇小记来记录一下这坎坷的过程。
是这样子的,原来的项目:
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>
先记这么一点吧。