随笔分类 - 源码分析
摘要:Mybatis 提供了事物的顶层接口: 还有一个事物工厂: 对于这两个接口我们一般是不直接操作的,但是它的影响是实实在在的。毕竟作为一个 ORM 框架,事物的管理是少不了的。它的实现大致可以分为两类,非 Spring 相关的事物和基于 Spring 管理的事物。 非 Spring 相关 关于 Jdb
阅读全文
摘要:一级缓存 其实关于 Mybatis 的一级缓存是比较抽象的,并没有什么特别的配置,都是在代码中体现出来的。 当调用 Configuration 的 newExecutor 方法来创建 executor: 默认的 executorType 是 ExecutorType.SIMPLE(SimpleExe
阅读全文
摘要:解析封装 ResultMap 是和结果集相关的东西,最初在解析 XML 的时候,于 parseStatementNode 方法中,针对每一个 select 节点进行解析,转换为 MappedStatement(类似 Spring 的 bean 配置和 BeanDefinition 的关系)。 在 M
阅读全文
摘要:Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。六步流程:加载驱动(5.x驱动包不需要这步了)建立连接创建State...
阅读全文
摘要:MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。 默认情况下,可以使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
阅读全文
摘要:Mybatis我们一般都是和Spring一起使用的,它们是怎么融合到一起的,又各自发挥了什么作用? 就拿这个Mapper来说,我们定义了一个接口,声明了一个方法,然后对应的xml写了这个sql语句, 它怎么就执行成功了?这家伙是怎么实现的,带着这个好奇心,我一步步跟踪,慢慢揭开了它的面纱。 一、初始
阅读全文
摘要:不涉及Spring完整的启动流程,仅仅从Mybatis的视角去分析几个关键的方法,找到Mybatis是如何通过这几个扩展点植入进去的,反过来看Spring是如何设计,埋下这些伏笔,实现其可扩展性。
阅读全文
摘要:感觉CSDN对markdown的支持不够友好,总是伴随各种问题,很恼火! xxMapper.xml的解析主要由XMLMapperBuilder类完成,parse方法来完成解析: public void parse() { if (!configuration.isResourceLoaded(res
阅读全文
摘要:一、 怎么用 Shiro 支持三种方式的授权 编程式:通过写 if/else 授权代码块完成: Subject subject = SecurityUtils.getSubject(); if(subject.hasRole(“admin”)) { //有权限 } else { //无权限 } 注解
阅读全文
摘要:在springMVC中要使用shiro,一般都遵循下面的配置: applicationContext-shiro.xml <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <prope
阅读全文
摘要:登录操作一般都是我们触发的: Subject subject = SecurityUtils.getSubject(); AuthenticationToken authenticationToken = new ... subject.login(authenticationToken); Sub
阅读全文
摘要:Subject 毫无疑问,Subject是Shiro最重要的一个概念。 “Subject”只是一个安全术语,意味着应用程序用户的特定于安全性的“视图”。Shiro Subject实例代表单个应用程序用户的安全状态和相关操作。 创建 初次创建是在AbstractShiroFilter#doFilter
阅读全文
摘要:servlet的初始化会触发核心过滤器的创建: public Object getObject() throws Exception { if (instance == null) { instance = createInstance(); } return instance; } 在create
阅读全文
摘要:org.springframework.web.filter.DelegatingFilterProxy 一般情况,创建一个Filter是交给自己来实现的。基于servlet规范,在web.xml中配置,自定义filter实现Filter接口: public interface Filter { v
阅读全文
摘要:创建核心Filter 同其他框架一样,都有个切入点,这个核心Filter就是拦截所有请求的。 通过web.xml中配置的Filer进入,执行init方法获取这个instance,调用下面的createInstance方法创建核心Filter: protected AbstractShiroFilte
阅读全文
摘要:好久没画图了,看下这个序列图,还算比较清晰的: 以textui来分析: Test 顶层接口。TestSuite和TestCase均实现此接口,在具体执行的时候面向此接口编程,弱化类型,实现各自的执行流程。 TestSuite中的run方法: public void run(TestResult re
阅读全文

浙公网安备 33010602011771号