mark mybatis annotation driven
2017-12-28 21:34
148 查看
mybatis annotaion方式并不像spring,需要指定annotation-driven来启用annotaion特性。
mybatis默认支持annotation,参考MapperRegistry#addMapper
接下来就是对Method对象的parse,解析出完整的mapped-statement 配置
最后,将解析完的mapped-statement 归入configuration
附:mybatis Mapper XML 解析顺序
循环指定的mapperLocations,创建对应XMLMapperBuilder
解析mapper node,addMappedStatement
guess xml namespace(Class),引入Annotation处理流程
创建MapperAnnotationBuilder
解析 Class.method annotation,addMappedStatement
……
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
……
相关文章推荐
- 使用@Controller注解为什么要配置<mvc:annotation-driven />
- 关于SpringMVC配置文件中使用<mvc:annotation-driven>标签报错的解 3ff0 决方式
- 160331、使用@Controller注解为什么要配置<mvc:annotation-driven />
- spring的annotation-driven配置事务管理器详解
- <mvc:annotation-driven />注解意义
- spring mvc <mvc:annotation-driven/> 和<context:component-scan base-package=""/>解释
- <mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题
- <mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题
- SpringMVC源码总结(六)mvc:annotation-driven中的HandlerMethodReturnValueHandler
- spring-in-action-mvc-mybatis-annotation
- spring mvc拦截器和<mvc:annotation-driven />的详解
- 使用@Controller注解为什么要配置<mvc:annotation-driven />
- cvc-complex-type.2.1: Element 'mvc:annotation-driven' must have no character or element information
- MyBatis注解Annotation介绍及Demo
- 关于spring配置中the prefix "tx" for element "tx:annotation-driven" is not bound 问题的处理
- <mvc:annotation-driven />注解意义
- tx:advice tx:annotation-driven 可以共用吗
- <mvc:annotation-driven />注解意义
- 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
- annotation-driven,annotation-config,component-scan的区别与作用