框架
文章平均质量分 57
框架
伤魂孤傲
物竞天择,适者生存
展开
-
SpringSecurity实现动态鉴权
SpringSecurity的鉴权原理整个认证的过程其实一直在围绕图中过滤链的绿色部分,而我们今天要说的动态鉴权主要是围绕其橙色部分,也就是图上标的:FilterSecurityInterceptor。FilterSecurityInterceptor想知道怎么动态鉴权首先我们要搞明白SpringSecurity的鉴权逻辑,从上图中我们也可以看出:FilterSecurityInterceptor是这个过滤链的最后一环,而认证之后就是鉴权,所以我们的FilterSecurityInterceptor转载 2021-06-25 17:06:54 · 1100 阅读 · 0 评论 -
spring框架中的单例Beans是线程安全的么?
Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状态(比如Serview类和DAO类),所以在某种程度上说Spring的单例bean是线程安全的。如果你的bean有多种状态的话(比如 View Model 对象),就需要自行保证线程安全。最浅显的解决办法就是将多态bean的作用域由“singleton”变更为“prototype”。spring单例模式下,资源是否是线程安全的,原创 2021-03-05 16:27:39 · 344 阅读 · 0 评论 -
@Transactional 注解控制事务有哪些不生效的场景
本文总结了 8 种事务失效的场景1 数据库引擎不支持事务这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。根据 MySQL 的官方文档:https://dev.mysql.com/doc/refman/5.5/en/storage-engine-setting.html从 MySQL 5.5.5 开始的默认存储引擎是:InnoDB,之前默认的都是:MyISAM,所以这点要值得注意,底层引擎不支持事务再怎么.转载 2021-02-22 11:02:05 · 193 阅读 · 0 评论 -
Mybatis-Plus时间范围查询
QueryWrapper<> wrapper = new QueryWrapper<>();wrapper.apply(StringUtils.isNotEmpty(condition.getCreateDateStart()), "date_format (create_time,'%Y-%m-%d') >= date_format('" + condition.getCreateDateStart() + "','%Y-%m-%d')")原创 2020-12-21 14:55:03 · 6512 阅读 · 3 评论 -
mybatis-plus 属性为空时判断问题
mybatis-plus 属性为空时判断问题最近在做项目时,发现前端调用查询接口,发现接口返回数据不对。我通过日志发现前端查询字段值为空时,竟然被当作一个条件,因为后端采用的mybatis-plus,通过官网我找到了一个配置mybatis-plus: global-config: db-config: select-strategy: not_empty参考...原创 2020-09-11 13:50:02 · 2005 阅读 · 0 评论 -
Failed to convert property value of type ‘java.lang.String‘ to required type ‘java.util.Date
查询时发送给服务器的日期的字符串格式:yyyy-MM-dd HH:mm:ss服务器接收到日期的字符串之后,向 MySQL 数据库发起查询时,因为没有指定日期时间格式,导致字符串数据不能正确地转换为日期而产生的错误:Failed to convert property value of type ‘java.lang.String’ to required type 'java.util.Date解决方法:在相应的属性上使用 @DateTimeFormat 注解,并指定格式:@DateTimeF原创 2020-09-04 16:42:18 · 365 阅读 · 0 评论 -
Mybatis中如何查询时间段内的数据
最后一个是正确的,前边的三个是可能遇到的坑,给大家展示一下,如果不需要的,可以直接跳到最后看:有时候我们需要查询一张表内一段时间内操作的数据,大家很容易就想到了 between ? and ? 这个 句型的sql 对不对? ,如果现在需要两个参数(比如一个开始日期,一个结束日期)来传递,需求是选择一个参数或者两个参数都可以查询,但是如下边这个条件判断使用and连接,此时需要两个参数都要有,才会有查询结果,当其中有一个日期参数为空的时候,这个sql就不会被执行,必须要两个参数才可以查询,这与我们的需求不.转载 2020-08-31 10:49:12 · 2348 阅读 · 0 评论 -
Mybatis缓存详解
缓存的重要性是不言而喻的。 使用缓存, 我们可以避免频繁的与数据库进行交互, 尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。mybatis 也提供了对缓存的支持, 分为一级缓存和二级缓存。 但是在默认的情况下, 只开启一级缓存(一级缓存是对同一个SqlSession 而言的)。1 一级缓存同一个 SqlSession 对象, 在参数和 SQL 完全一样的情况先, 只执行一次 SQL 语句(如果缓存没有过期)也就是只有在参数和 SQL 完全一样的情况下, 才会有这种情况.转载 2020-06-20 10:18:45 · 226 阅读 · 0 评论