美文网首页
Mybatis通过动态代理获取注解信息

Mybatis通过动态代理获取注解信息

作者: YAOPRINCESS | 来源:发表于2020-09-09 20:34 被阅读0次
package com.kang.mybatis.proxy;


import org.apache.ibatis.annotations.Select;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Arrays;
import java.util.List;

/**
 * @author klr
 * @create 2020-09-09-20:21
 */

interface UserMapper{
    @Select("select * from user")
    List<User> selectUserList();
}

public class ProxyExample {
    public static void main(String[] args) {
        //动态代理UserMapper接口
        UserMapper userMapper = (UserMapper) Proxy.newProxyInstance(ProxyExample.class.getClassLoader(), new Class[]{UserMapper.class}, new InvocationHandler() {
            @Override
            public Object invoke(Object proxy, Method method, Object[] objects) throws Throwable {
                //打印代理类调用的方法名
                System.out.println(method.getName());

                Select annotation = method.getAnnotation(Select.class);
                if (annotation != null) {
                    //如果注解存在,打印里面的信息
                    System.out.println(Arrays.asList(annotation.value()));
                }
                return null;
            }
        });

        //通过代理类调用方法
        userMapper.selectUserList();

    }
}

相关文章

网友评论

      本文标题:Mybatis通过动态代理获取注解信息

      本文链接:https://www.haomeiwen.com/subject/cxeyektx.html