随笔分类 - Java EE
摘要:Github地址:https://github.com/andyslin/spring ext 编译、运行环境:JDK 8 + Maven 3 + IDEA + Lombok spring boot:2.1.0.RELEASE(Spring:5.1.2.RELEASE) 如要本地运行github上的
阅读全文
摘要:Github地址:https://github.com/andyslin/spring ext 编译、运行环境:JDK 8 + Maven 3 + IDEA + Lombok spring boot:2.1.0.RELEASE(Spring:5.1.2.RELEASE) 如要本地运行github上的
阅读全文
摘要:通过一个案例,扩展SpringMVC,添加一种新的参数绑定机制。
阅读全文
摘要:今天使用 遇到一个问题,记录一下: 首先, 配置如下: 然后,通过页面传参数: 但是后台SpringMVC接受参数的时候,发现并没有接受成功,调试了一下,发现 都获取不到,估计是和'PUT'方法有关,后面改回 之后正常了。
阅读全文
摘要:引子 SpringBoot的根基在于自动配置和条件配置,而在实现自动配置的时候,使用了一个 的工具类,用于加载类路径下 文件中的配置,该配置是一个 文件,键为接口名/类名/注解类名等(下文统称为接口),值为一个或多个实现类。这个工具类实际上并不是Spring Boot的,而是spring core包
阅读全文
摘要:昨天的笔记中,包含了CryptoUtils和RSAUtils,今天顺便贴一下两个对称加密的工具类: DESUtils AESUtils
阅读全文
摘要:两年前在做Java EE开发平台时,因为用户登录相关的模块是委托给另一位同事完成的,所以虽然知道大体概念,但是对客户端怎么安全传输密码到服务端的具体细节并不甚了解。然而这次在做4A系统(认证、授权、监控、审计)时,无论怎样都绕不过这一块内容了,于是在仔细研究了一下之前的方案,并参考网上的一些资料后,
阅读全文
摘要:1. 从 http://rubyinstaller.org/downloads/ 下载Ruby2.2.5(x64)并安装,安装时勾选添加至路径变量中 2. 命令行中执行gem source a http://gems.ruby china.org 3. 安装ruby的redis支持环境:gem in
阅读全文
摘要:隔了两周,首先回顾一下,在Mybatis中的SqlMapper配置文件中引入的几个扩展机制: 1.引入SQL配置函数,简化配置、屏蔽DB底层差异性 2.引入自定义命名空间,允许自定义语句级元素、脚本级元素 3.引入表达式配置,扩充SqlMapper配置的表达能力 前面两条已经举过例子,现在来看看怎么
阅读全文
摘要:三、子表删除兼容问题 这个问题,使用SQL配置函数不太好处理,而且就算使用SQL配置函数,也不够直观,有点自动生成SQL的意味,太Hibernate了(不过要是可以兼收Hibernate和Mybatis两家之长,那也是一个不错的主意),下面我们使用自定义命名空间的方式来解决。 1、编写sqlmapp
阅读全文
摘要:奋斗了好几个晚上调试程序,写了好几篇博客,终于建立起了Mybatis配置的扩展机制。虽然扩展机制是重要的,然而如果没有真正实用的扩展功能,那也至少是不那么鼓舞人心的,这篇博客就来举几个扩展的例子。 这次研读源码的起因是Oracle和MySQL数据库的兼容性,比如在Oracle中使用双竖线作为连接符,
阅读全文
摘要:接上一篇博文,这一篇来讲述怎么实现SchemaSqlMapperParserDelegate——解析SqlMapper配置文件。 要想实现SqlMapper文件的解析,还需要仔细分析一下mybatis的源码,我画了一个图来协助理解,也可以帮助形成一个整体概念: 当然,这幅图不止是原生的解析,也包括了
阅读全文
摘要:编写好XSD文件,然后来看怎么使用XSD文件校验,并解析SqlMapper文件,也就是实现doParseSqlMapperResourceWithSchema()方法。 为了实现这个功能,有两个基本要求: (1)兼容性:需要兼容mybatis的原生配置,兼容有两种层级,一种是使用DTD校验,这个前面
阅读全文
摘要:这篇文章以前面对SqlSessionFactoryBean的重构为基础,先简单回顾一下做了哪些操作: 现在来看怎么扩展,首先创建SchemaSqlSessionFactoryBean,继承重构后的SqlSessionFactoryBean,在XML配置中同步修改为新建的类: 对于一些简单的功能扩展,
阅读全文
摘要:三、代码重构 1、先使用Eclipse把buildSqlSessionFactory()方法中众多的if换成小函数 说明一下: 这里的重构全部使用Eclipse完成,操作步骤是选定需要重构的代码,右键选择Refactor—>Extract Method,然后输入新的方法名,点击OK完成 新方法名规则
阅读全文
摘要:一般来说,修改框架的源代码是极其有风险的,除非万不得已,否则不要去修改。但是今天却小心翼翼的重构了Mybatis官方提供的与Spring集成的SqlSessionFactoryBean类,一来是抱着试错的心态,二来也的确是有现实需要。 先说明两点: 通常来讲,重构是指不改变功能的情况下优化代码,但本
阅读全文
摘要:Mybatis是业界非常流行的持久层框架,轻量级、易用,在金融IT领域完全是领军地位,比Hibernate更受欢迎,优势非常多,也是非常值得我们学习的。但Mybatis并不尽善尽美,其自身的设计、编码也还有许多不足,甚至是缺陷,这篇文章来简要讨论一下这些缺陷: 1.Mybatis使用DTD作为XML
阅读全文
摘要:这篇博客中来说一下对Mybatis动态代理接口方式的扩展,对于Mybatis动态代理接口不熟悉的朋友,可以参考前一篇博客,或者研读Mybatis源码。 扩展11:动态代理接口扩展 我们知道,真正在Mybatis动态代理接口方式背后起作用的是SqlSession接口,类似地,我们的动态代理接口扩展则是
阅读全文
摘要:为了说明后续的Mybatis扩展,插播一篇广告,先来简要说明一下Mybatis的一种原生用法,不过先声明:下面说的只是Mybatis的其中一种用法,如需要更深入了解Mybatis,请参考官方文档,或者研读源码。 我们知道,使用Mybatis的方式有很多种,从是否集成上分,可以单独使用,也可以和Spr
阅读全文
摘要:接着昨天的Mybatis扩展——IDaoTemplate接口。 扩展9:批量执行 1、明确什么是批量执行 首先说明一下,这里的批量执行不是利用<foreach>标签生成一长串的sql字符串——这并不是真正的JDBC批量执行,我这里所说的批量是指在内核调用JDBC的addBatch、executeBa
阅读全文