1.Spring条件加载原理(@Conditional,@ConditionalOnXXX注解)
https://fangjian0423.github.io/2017/05/16/springboot-condition-annotation/
https://www.jianshu.com/p/1d0fb7cd8a26
https://www.jianshu.com/p/ff8b18485b7a
https://www.cnblogs.com/dyppp/p/7732084.html
https://www.cnblogs.com/doit8791/p/8792978.html
2.@ConfigurationProperties注解
https://blog.csdn.net/u013725455/article/details/79352459
https://blog.csdn.net/guduyishuai/article/details/70879952
https://www.cnblogs.com/liaojie970/p/8043150.html
3.@PropertySource注解结合@ConfigurationProperties、@Value注解
https://blog.csdn.net/wangmx1993328/article/details/81005170
https://yq.aliyun.com/ziliao/385726
https://www.cnblogs.com/whx7762/p/7885735.html
4.Spring Boot自动装配原理
https://www.jianshu.com/p/4a6094542f45
https://blog.csdn.net/yuanjinq/article/details/78162308
https://www.cnblogs.com/leihuazhe/p/7743479.html
5.@EnableXXX注解原理
https://blog.csdn.net/qq_30038111/article/details/80198967
https://www.cnblogs.com/lzmrex/p/9915877.html
https://blog.csdn.net/chengqiuming/article/details/81586948
6.@EnableConfigurationProperties注解
https://www.jianshu.com/p/7f54da1cb2eb
https://blog.csdn.net/qq_21989939/article/details/78873696
7.动态刷新注解@refreshscope原理和使用
https://www.cnblogs.com/yjmyzz/p/8085530.html
https://www.jianshu.com/p/188013dd3d02
https://blog.csdn.net/kangkanglou/article/details/76168628
https://www.jianshu.com/p/35172d7cb157
https://www.cnblogs.com/flying607/p/8459397.html
8.异步(多线程)执行注解@EnableAsync和@Async
http://www.cnblogs.com/lcngu/p/6185363.html
https://blog.csdn.net/u014231523/article/details/76272273/
@Async不要修饰static方法,否则异步不生效:
http://www.cnblogs.com/azhqiang/p/5609615.html
配置自定义异步线程池的两种方式:
https://blog.csdn.net/qq_39385706/article/details/79365849
9.@SpringCloudApplication注解
https://blog.csdn.net/tt____tt/article/details/81080200
10.@EnableGlobalMethodSecurity注解
https://blog.csdn.net/l18767118724/article/details/72934564
https://www.jianshu.com/p/41b7c3fb00e0
https://blog.csdn.net/w605283073/article/details/51327182
一个结合OAuth2完整实现的例子:
和@EnableWebSecurity的区别:
https://stackoverflow.com/questions/29721098/enableglobalmethodsecurity-vs-enablewebsecurity
11.OAuth2鉴权流程
直接访问连接到认证服务器且设有鉴权成功后的访问权限的资源服务器会提示未认证,而拒绝访问。
所以需要先访问认证服务器,认证成功。这里是用Postman传递用户名/密码模式的相关client认证头和POST请求参数到
认证服务器的/oauth/token端点获取accessToken信息,这个信息在认证服务器中被封装了用户名和权限列表后生成jwt返回。
获取到accessToken之后,使用Postman以此作为认证头信息访问资源服务器,资源服务器会解析这个头,到认证服务器获取
相关解密密码,获取到Authentication信息。这里就包括生成jwt前在认证服务器被封装的用户名和权限列表信息。将用户访问的
资源url与用户所拥有的权限列表,按照资源服务器的认证规则进行比较,来决定该用户对该url的访问是否被授权。如果被授权,
可正常访问,获取到返回结果,否则仍然返回无权访问。
在实际生产环境,前后端分离。资源服务是统一配置在网关的。前端访问网关任何资源均被先导入到认证服务器的登录页面,登录后进行认证,认证
成功后返回accessToken给前端。前端带着accessToken重定向资源访问,按url和accessToken解析出的权限进行比对,有授权则正常访问该网关资源。