mark mybatis annotation driven
mybatis annotaion方式並不像spring,需要指定annotation-driven來啟用annotaion特性。
mybatis預設支援annotation,參考MapperRegistry#addMapper
/**
* MapperRegistry Configuration實現annotaion mapper註冊的幫助類
**/
public <T> void addMapper(Class<T> type) {
if (type.isInterface()) {
try {
MapperAnnotationBuilder parser = new MapperAnnotationBuilder(config, type);
parser.parse();
} finally {
//...
}
}
}
接下來就是對Method物件的parse,解析出完整的mapped-statement 配置
public void parse() {
// Class級別解析
parseCache();
parseCacheRef();
Method[] methods = type.getMethods();
// Method級別解析
for (Method method : methods) {
try {
// 根據Annotation解析完整的MappedStatement資訊
parseStatement(method);
} catch (IncompleteElementException e) {
// 加入待處理佇列
configuration.addIncompleteMethod(new MethodResolver(this, method));
}
}
// 再次嘗試解析 IncompleteMethod
parsePendingMethods();
}
最後,將解析完的mapped-statement 歸入configuration
MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, id, sqlSource, sqlCommandType);
// ......
MappedStatement statement = statementBuilder.build();
configuration.addMappedStatement(statement);
附:mybatis Mapper XML 解析順序
- 迴圈指定的mapperLocations,建立對應XMLMapperBuilder
- 解析mapper node,addMappedStatement
- guess xml namespace(Class),引入Annotation處理流程
- 建立MapperAnnotationBuilder
- 解析 Class.method annotation,addMappedStatement
- ……
相關文章
- springMVC-mvc:annotation-drivenSpringMVC
- <mvc:annotation-driven/>使用介紹MVC
- mark spring bean-annotation 支援SpringBean
- mark mybatis 返回booleanMyBatisBoolean
- Mybatis原始碼分析(二)XML的解析和Annotation的支援MyBatis原始碼XML
- 【mybatis annotation】資料層框架應用--Mybatis(二) 基於註解實現資料的CRUDMyBatis框架
- Annotation
- 扯扯“Model Driven UI”UI
- java annotationJava
- Java自定義Annotation,通過反射解析AnnotationJava反射
- mark語法
- Java建立AnnotationJava
- 自定義Annotation
- JUnit basic annotation
- java 的annotationJava
- 標記類 mark
- Java —— 註解(Annotation)Java
- java反射——反射AnnotationJava反射
- Java Annotation 註解Java
- Annotation for ANDROID ---FirstAndroid
- Java 註解(Annotation)Java
- JAVA ANNOTATION詳解Java
- 使用Domain-Driven建立Hypermedia APIAIAPI
- 開發者驅動文化(Developer Driven Culture)Developer
- java-Annotation註解Java
- Java之註解(Annotation)Java
- Java 註解Annotation研究Java
- ch11_enum_and_annotation
- python pytest.markPython
- 貧血模型 - DDD - The Domain Driven Design模型AI
- Spring常用Annotation簡介Spring
- Java註解(Annotation)詳解Java
- JAVA(五)反射機制/AnnotationJava反射
- 【Java.Core】註解 - AnnotationJava
- JUnit 4中annotation的用法
- Mark Fortner:Java指令碼期望列表Java指令碼
- Transmit Value by Customized Annotation in AOP InterceptionMITZed
- Java進階(一)Annotation(註解)Java