前言
最近在给一个项目整合Flowable流程引擎,跑起来很顺利。为了便于维护,将业务用的数据库和Flowable用的数据库分离。根据文档,很容易就能实现
1 |
|
从Flowable流程引擎聊一聊如何动态修改Spring中的BeanDefination
最近在给一个项目整合Flowable流程引擎,跑起来很顺利。为了便于维护,将业务用的数据库和Flowable用的数据库分离。根据文档,很容易就能实现
1 |
|
最近在学习SpringCloud,配置CORS策略的时候遇到了问题。当接口被鉴权框架SaToken拦截的时候,浏览器里拿不到返回的响应,同时控制台报错CORS响应头未配置。但是当鉴权通过时,CORS响应头则是正常的。
最近在项目中出现了更新数据库偶尔更新丢失的情况,表现为SQL执行成功,没有任何报错,在同一事务中查询保存后的记录,没有任何问题,然而查看数据库记录却没有更新。重点是这种情况并不是稳定发生的,有时能够更新成功,又是却会更新丢失。
今天在项目中配置了动态数据源,但是在引入了MybatisPlus后启动项目,却发现所有Mapper和SqlSession
等等Bean没有被自动注入到容器中,猜测是自动配置失效,查看源码后发现MybatisPlusAutoConfiguration
自动配置类上有注解@ConditionalOnSingleCandidate(DataSource.class)
,即在容器中只有一个DataSource
候选Bean是才会启用自动配置,而我手动在容器中注入了一个主数据源和一个动态数据源,导致自动配置失效。并且由于将主数据源设为了动态数据源的默认数据源,所以最好的解决方案是在动态数据源上添加@Primary
注解,让容器优先选择动态数据源
Golang的Echo框架中,上下文echo.Context
是一个接口,可以通过它重写默认的Context.JSON
方法来自定义返回格式
首先定义一下接口的格式
1 | type CommonResponse struct { |
对于前后端分离的项目,采用统一的返回格式可以有效减少前后端开发人员的交流成本,对于Spring MVC可以利用切面无侵入地、优雅地实现这一点。
Spring MVC提供了AbstractMappingJacksonResponseBodyAdvice抽象类对返回的JSON做二次处理
首先定义返回结构
关于JWT是什么就不赘述了,可以看看阮一峰大佬的文章:https://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
首先需要定义一个Bean用来存放JWT Body,字段可以根据具体业务决定。这一步当然可以跳过,你可以用Map传值,只不过可维护性会差点
通常我们用Cloudflare WARP通过替换VPS的双栈或单栈网络来通过获得所谓“原生IP”,从而解锁Netflex等流媒体,而如果直接替换掉双栈网络会导致VPS失联,即使通过修改路由表正常使用也会影响到Docker等应用的NAT。实际上我们只需要让Xray的流量走WARP接口出去就行了,outbounds配置提供了sendThrough
用来指定出口IP,streamSettings.sockopt.mark
用来设置fwmark
。我之前直接指定为WARP的IP发现并不行,收不到回包(实际上如果直接指定接口名就正常使用了,可惜不支持)。在翻Xray的文档时才发现还需要配置一下路由表才行。