0%

properties文件中文

idea中properties文件默认中文会转为ascii

1
#\u4E2D\u6587

这样注释的可读性太低了,可以设置一下

idea中properties中文

1
#中文

逆向工程

可以针对单表自动生成MyBatis执行所需要的代码,包括:Mapper.java,Mapper.xml,实体类,这样可以减少重复代码的编写

1
2
3
4
<dependency>  
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
</dependency>

逆向工程配置

阅读全文 »

springSecurity提供的过滤器

  • SecurityContextPersistenceFilter 两个主要职责:请求来临时,创建 SecurityContext安全上下文信息,请求结束时清空 SecurityContextHolder
  • CsrfFilter 在spring4这个版本中被默认开启的一个过滤器,用于防止csrf攻击
  • LogoutFilter 处理退出登录的过滤器
  • UsernamePasswordAuthenticationFilter 表单提交了username和password,被封装成token进行一系列的认证,便是主要通过这个过滤器完成的,在表单认证的方法中,这是最最关键的过滤器。
  • AnonymousAuthenticationFilter 匿名身份过滤器,这个过滤器个人认为很重要,需要将它与UsernamePasswordAuthenticationFilter 放在一起比较理解,spring security为了兼容未登录的访问,也走了一套认证流程,只不过是一个匿名的身份。
  • SessionManagementFilter 和session相关的过滤器,内部维护了一个SessionAuthenticationStrategy,两者组合使用,常用来防止 session-fixation protection attack,以及限制同一用户开启多个会话的数量
  • ExceptionTranslationFilter 异常翻译过滤器,这个过滤器本身不处理异常,而是将认证过程中出现的异常交给内部维护的一些类去处理
  • FilterSecurityInterceptor 这个过滤器决定了访问特定路径应该具备的权限,访问的用户的角色,权限是什么?访问的路径需要什么样的角色和权限?这些判断和处理都是由该类进行的

红黑树

要了解红黑树,首先要知道二叉查找树,因为红黑树是特殊的二叉查找树

二叉查找树

首先它是一颗二叉树

  • 若左子树不空,则左子树上所有节点的值均小于它的根节点的值;
  • 若右子树不空,则右子树上所有节点的值均大于它的根节点的值;
  • 左、右子树也分别为二叉排序树

来进行查找时,根据二分查找的思想,查找所需的最大次数等同于二叉查找树的高度,但是二叉查找树在极端情况下多次插入新节点会变成线性的链表,导致查找时需要遍历所有节点

红黑树

由于二叉查找树的缺点,红黑树出来了,红黑树是一种自平衡的二叉查找树,可在O(logN)时间内完成查找、增加、删除等操作。除了符合二叉查找树的特性外,还符合以下特性

阅读全文 »

hive中没有group_concat

mysql中有group_concat进行分组之后连接多个字段,非常好用,最近使用hive时需要用到相同的功能,一开始写的是mysql语句,结果发现报错了,hive中没有这个function

好吧,没有的话就得找一下有没有可替代的方法,后来找到了concat_ws和collect_set进行组合来解决

1
2
3
4
select dcm.doc_id as doc_id,concat_ws(',',collect_set(cate.NAME)) as name
from dcm
left join cate on cate.id = dcm.categories_id
group by dcm.doc_id