
spring
文章平均质量分 70
低端程序狗
这个作者很懒,什么都没留下…
展开
-
解决 springboot 多数据源或动态数据源 的事务问题
需求背景: 动态数据源 或者 多数据源 在项目当中是经常遇到的,但由于spring 开启事务后,为保证整个事务的 connection 不会变化,spring 在通过 DataSourceUtils 获取 connection 的时候会用 DataSource 作为 key 将 connection 保存到 ThreadLocal 中(这段代码是没办法进行重写的,它是静态方法,并在其他地方直接调用),如下所示:spring 事务获取 connection 源代码:public static Con原创 2021-06-09 23:02:37 · 4413 阅读 · 4 评论 -
springboot+mybatis 实现 动态数据源
应用场景 单个应用里面同时需要操作多个库的表,且库不固定; 这是以前做的一个 数据解析 服务场景下的一个功能,因为每次解析的数据量很大,会生成大量的表,所以每次的解析生成的数据都会单独创建一个来存储; 当然在其他 比如 多个数据源 实现读写分离 等场景下也可能会遇到这样的问题;实现方案 这里使用的方案是参考的 AbstractRoutingDataSource,重写 DataSource,并在获取 connection 的时候实现数据源的自动切换,从而实现使用一个 SqlSessionFa原创 2021-06-09 22:08:33 · 1589 阅读 · 0 评论 -
自定义 springboot starter 及其源码解析
自定义 springboot starterspring boot 启动自定义 starter 源码解析读取 spring.factories 文件提取 EnableAutoConfiguration 配置流程总结自定义 springboot starter 第一步:创建被引入项目的 config 类,主要是一些基本配置,比如扫描等等 第二步:在 resource 目录下,新建 META-INF 文件夹,并创建 spring.factories 文件,然后在 将配置类 赋值 给 org.原创 2021-03-09 23:49:31 · 1185 阅读 · 0 评论 -
springboot 防止重复请求,防止重复点击
利用 springboot + redis 实现过滤重复提交的请求,业务流程如下所示,首先定义一个拦截器,拦截需要进行过滤的URL,然后用 session + URL 作为唯一 key,利用 redis setnx 命令,来判断请求是否重复,如果 key set 成功,说明非重复请求,失败则说明重复请求; URL 拦截器可以使用 spring 拦截器,但使用 spring,每个需要过滤的新 URL 都需要添加配置,因此这里使用 AOP 注解 的形式来实现,这样更直观一点; 首先,定义注解:@原创 2021-03-02 22:03:20 · 3871 阅读 · 2 评论 -
SpringMVC 利用注解获取 Session 中的数据
SpringMVC 利用注解获取 Session 中的数据1. HandlerMethodArgumentResolver 的使用 通常来说,我们获取获取 Session 中的数据,比如 登录用户 LoginUserVO,都是在方法中注入 HttpSession,然后执行LoginUserVO attribute = (LoginUserVO) session.getAttribute(“login_user_key”); 来获取,因为用到的地方比较多,每次都得写重复的代码还得进行数据的转换就会很原创 2020-09-01 22:33:45 · 918 阅读 · 0 评论 -
Spring XML Bean 标签基本属性
Spring XML Bean 标签基本属性1. 标签属性介绍:idbean 名称,默认为 类名;class 被代理类的 class;name:相当于 alias,bean 别名,多个别名用 ‘,’ 隔开;parent:首先 parent 并不指 bean 对象的继承关系,它是指的是 标签的继承关系,既一个 标签可以通过 parent 继承到另一个 标签的所有数据,避免一些重复数据的重复书写;scope:作用域,表示这个 bean 的作用范围,默认有 sing原创 2020-07-19 22:12:03 · 429 阅读 · 0 评论