随笔分类 -  源码分析

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