1 Configuration Structure
- properties
- settings
- typeAliases
- typeHandlers
- objectFactory
- plugins
-
environments
- environment
- transactionManager
- dataSource
- environment
- databaseIdProvider
- mappers
2 TypeAliases
A type alias is simply a shorter name for a Java type. It's only relevant to the XML configuration and simply exists to reduce redundant typing of fully qualified classnames.
是什么:类型别名是为 Java 类型设置的短名字。它只和 XML 配置关联且仅仅是为了减少类的完全限定名键入的冗余。
有两种方式可是实现:别名定义在 XML 中或使用注解。
2.1 TypeAlias in XML
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
</typeAliases>
With this configuration, Blog can now be used anywhere that domain.blog.Blog could be.
通过这样的配置,Blog 就可以在 domain.blog.Blog 要存在的任何地方使用。
2.2 Set by Annotation
You can also specify a package where MyBatis will search for beans.
你也可以指定一个包名,Mybatis 会在该包下搜索 Java bean。
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
Each bean found in domain.blog , if no annotation is found, will be registered as an alias using uncapitalized non-qualified class name of the bean. That is domain.blog.Author will be registered as author. If the @Alias annotation is found its value will be used as an alias.
每个在包 domain.blog 下发现的 bean,如果没有注解,会将该 bean 的首字母小写的非限定类名作为别名。比如 domain.blog.Author 的别名为 author。如果有 @Alias 注解,它的值会被作为别名。
@Alias("author")
public class Author {
...
}
附:内置基本类型别名
There are many built-in type aliases for common Java types. They are all case insensitive, note the special handling of primitives due to the overloaded names.
有一些内置的 Java 基本类型的别名。它们是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。
最后
说明:MyBatis 官网提供了简体中文的翻译,但个人觉得较为生硬,甚至有些地方逻辑不通,于是自己一个个重新敲着翻译的(都不知道哪里来的自信...),有些地方同官网翻译有出入,有些倔强地保留了自己的,有的实在别扭则保留了官网的,这些都会在实践中一一更正。鉴于个人英文能力有限,文章中保留了官方文档原英文介绍(个别地方加以调整修剪),希望有缘看到这里的朋友们能够有自己的理解,不会被我可能错误或不合理的翻译带跑偏(〃'▽'〃),欢迎指正!
当前版本:mybatis-3.5.0
官网文档:MyBatis
官网翻译:MyBatis 简体中文
项目实践:MyBatis Learn