上节中一个良好架构的特征中有一点,良好的层次结构。 本节说说架构设计的层次设计。
maven项目实践
作为Java世界事实上的构建标准,maven被几乎所有的项目使用着。 但是如果任何工具一样,总会有或多或少的最佳实践或者说避坑选项。 本节尝试列出根据我的经验所“认为”的一些实践经验, 不敢称为“最佳实践”,“项目实践”姑且可以。
本文假设具备基础的maven使用经验,了解如何使用maven,如何添加依赖如何打包。 本文的目的仅仅是介绍maven在项目中一些常用、非常重要的概念, 使得开发人员对于maven有个整体的概念。 具体的配置需要另行查阅文档。
Mybatis源码分析(8)-mybatis-spring的事务管理
在上面一节[MyBatis源码分析(7)]中看到,我们一般会使用mybatis的SqlSessionTemplate
来作为mapper的生成类,该类实际上就是SqlSessionFactory
的一个代理类。在官方文档中,也明确写明了该类是mybatis-spring的核心类。
在上一节中,我们可以看到该类的insert,select, getMapper
等方法。 本节看下具体代理实现。
该类内部通过SqlSessionInterceptor
类来代理SqlSessionFactory
。
MyBatis源码分析(7)-mybatis-spring的实现原理
mybatis-spring
把mybatis
与spring
无缝连接,它允许 mybatis
嵌入到spring的事务,处理 mybatis
的mapper实例创建以及注入到其他Bean中, 翻译mybatis的异常到spring的DataAccessExceptions
。
鉴于mybatis-spring
的使用范围以及spring
的普集程度,所以把mybatis-spring
的源码分析放到同一系列中来。
我觉得说mybatis-spring
至少有如下几个问题值得探究:
12factor - spring cloud推荐的一个编程方法论简述
Codebase 一个codebase,代码基线,是任意多个repo共享的一个root commit, 也就是说,无论当前处于什么状态,它们在某一个时间点,“是相同的”。 如果一个app包含多个codebase,那么它不应该是一个app,而是一个分布式系统 - 分布式系统中每一个独立的组件都是一个app,每一个都独立遵循12factor理论。 如果说多个app都依赖于某一个 codebase,它们不应该是多个app,而应该通过第二章节的依赖管理来把它们共用的部分变为一个依赖。 对于一个 ...