`

提取mybatis mapper接口

阅读更多

在使用mybatis 3.0的annotation之后,会产生大量mapper接口文件。
使用下面这个类可以提取这些mapper的清单

public final class MybatisMapperScanner extends
		ClassPathScanningCandidateComponentProvider {
	{
		addIncludeFilter(new AnnotationTypeFilter(Repository.class));
		// exclude package-info.java
		addExcludeFilter(new TypeFilter() {
			@Override
			public boolean match(final MetadataReader metadataReader,
					final MetadataReaderFactory metadataReaderFactory)
					throws IOException {
				final String className = metadataReader.getClassMetadata()
						.getClassName();
				return className.endsWith("package-info");
			}
		});
	}

	/** * */
	public MybatisMapperScanner() {
		super(false);
	}

	/**
	 *  搜索所有的mybatis mapper
	 * 
	 * @param packageName
	 *            包名,如"com.iteye.strongzhu"
	 * 
	 * @return 所有的mapper清单
	 */
	@SneakyThrows(ClassNotFoundException.class)
	public Set<Class<Object>> scanMapper(final String packageName) {
		final Set<BeanDefinition> components = findCandidateComponents(packageName);

		final Set<Class<Object>> mybatisMapperList = new HashSet<Class<Object>>();
		for (final BeanDefinition component : components) {
			@SuppressWarnings("unchecked")
			final Class<Object> cls = (Class<Object>) Class.forName(component
					.getBeanClassName());
			mybatisMapperList.add(cls);
		}
		return mybatisMapperList;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.springframework.context.annotation.
	 * ClassPathScanningCandidateComponentProvider
	 * #isCandidateComponent(org.springframework
	 * .beans.factory.annotation.AnnotatedBeanDefinition)
	 */
	@Override
	protected boolean isCandidateComponent(
			final AnnotatedBeanDefinition beanDefinition) {
		return (beanDefinition.getMetadata().isInterface() && beanDefinition
				.getMetadata().isIndependent());
	}
}

 

 

分享到:
评论

相关推荐

    TkMybatis通用Mapper逆向工程代码生成工具

    TkMybatis通用Mapper逆向工程代码生成工具是Java开发中的一个高效实用的工具,它基于Maven项目构建,主要用于简化数据库表与Java实体类、Mapper接口及XML映射文件之间的同步工作。通过此工具,开发者可以自动生成...

    MyBatis SQL mapper framework for Java.zip

    3. **Mapper接口和Mapper XML文件**: MyBatis通过Mapper接口与XML配置文件(或注解)将Java方法与SQL语句绑定。在XML文件中,我们可以编写复杂的SQL,包括条件判断、动态SQL等。 4. **Mapper代理**: 当调用Mapper...

    《手写Mybatis》第4章:Mapper XML的解析和注册使用.doc

    本章主要目标是实现对Mapper XML文件的解析,提取SQL信息,并创建对应的Mapper接口代理,以便在程序中调用。 在Mybatis中,Mapper XML文件包含了SQL语句、参数类型、返回类型以及各种动态条件。这些信息是与Mapper...

    手撕Mybatis源码,自己动手实现Mybatis

    在运行时,Mybatis 使用动态代理将Mapper接口方法调用转换为实际的SQL执行。 5. **Executor**: 执行器是Mybatis的执行引擎,负责处理SQL的执行和结果映射。有SimpleExecutor、ReuseExecutor和BatchExecutor三种,...

    mybatis的逆向工程

    MyBatis的逆向工程是开发过程中的一种高效工具,它能够帮助开发者从现有的数据库模式自动生成对应的Java代码,包括实体类、Mapper接口和XML配置文件等。这一特性大大减轻了手动编写这些代码的工作量,提高了开发效率...

    mybatis逆向工程生产工具

    它能够根据数据库中的表结构自动创建对应的实体类、Mapper接口、Mapper XML文件以及Service层代码,从而减轻了开发者的手动编写工作。 在MyBatis逆向工程中,主要涉及以下几个核心概念: 1. **逆向工程**:逆向...

    mybatis逆向工程

    MyBatis逆向工程是一种高效的方法,用于从现有的数据库中自动生成对应的Java实体类、Mapper接口和XML配置文件,极大地简化了开发过程,避免了手动编写这些基础代码的繁琐工作。这一技术主要基于MyBatis的代码生成器...

    mybatis逆向工程生成

    MyBatis逆向工程生成是数据库表到Java实体类、Mapper接口及XML配置文件的一种自动化工具,极大地提高了开发效率。这个过程涉及到多个步骤和技术概念,接下来我会详细解释这些知识点。 1. **MyBatis框架**: MyBatis...

    mybatis逆向工程生成mysql数据库表的pojo,model,mapper的插件包

    Mybatis逆向工程是开发过程中一个非常实用的工具,它能帮助开发者自动生成与数据库表对应的Java实体类(POJO)、Model以及Mapper接口和XML配置文件,极大地提高了开发效率。这个插件包专为MySQL数据库设计,使得在...

    mybatis逆向工程源码

    MyBatis逆向工程是开发过程中的一项重要工具,它允许开发者通过配置,自动根据数据库表结构生成对应的Java实体类、Mapper接口以及XML映射文件,极大地提高了开发效率。这一特性在快速构建数据访问层时尤为有用,避免...

    mybatis逆向工具

    1. MyBatis Generator(MBG):MBG是MyBatis官方提供的一个代码生成器,可以根据数据库表信息自动生产Java模型类、Mapper接口以及对应的XML配置文件。这些生成的代码遵循MyBatis框架的标准,可以直接在项目中使用。 ...

    模仿源码实现简易mybatis功能

    1. **理解MyBatis架构**:首先,要了解MyBatis的整体架构,包括SqlSessionFactory、SqlSession、Executor、Mapper接口和Mapper XML配置等组件的作用和相互关系。 2. **动态SQL解析**:MyBatis的动态SQL是其一大特点...

    mybatis逆向生成代码模板包

    MBG是MyBatis框架的一个扩展,通过读取数据库元数据,可以自动生成DAO层的Java实体类、Mapper接口及XML配置文件。这样开发者就不必手动编写这些重复性高且相对固定的代码,从而节省大量时间,提高开发效率。 2. **...

    mybatis逆向生成工具包.rar

    MyBatis逆向生成工具包是一个实用的Java开发辅助工具,专为MyBatis框架设计,旨在自动化数据库模型到实体类、Mapper接口以及XML映射文件的生成过程。这一工具包显著减少了开发者手动编写这些常见代码的时间,提高了...

    mybatis逆向工程生成java代码和xml配置(原码)

    MyBatis逆向工程是一种强大的工具,它可以帮助开发者自动生成Java实体类、Mapper接口和对应的XML配置文件,大大减轻了数据库表与Java代码之间映射的工作量。在本项目中,"mybatis逆向工程生成java代码和xml配置(原码...

    通用mapper插件的逆向工程

    逆向工程则是从现有的数据库结构出发,自动生成对应的Java实体类、Mapper接口以及XML配置文件,从而避免手动编写这些繁琐的代码。下面我们将详细探讨这两个概念及其在实际开发中的应用。 首先,通用Mapper插件...

    tool-mybatis.zip

    在"elitel-tool-mybatis"这个压缩包中,可能包含了一套完整的工具链,用于从MySQL数据库中提取表结构,然后自动生成与这些表对应的MyBatis实体类和Mapper接口。实体类通常会包含数据库表的字段属性,而Mapper接口则...

Global site tag (gtag.js) - Google Analytics