hg460713171 2019-12-09 20:39 采纳率: 25%
浏览 812

用反射调用私有方法,mapper没有注入进去的问题

今天跑单元测试遇到一个问题。
用反射调用私有方法,私有方法里面涉及调用数据库 mapper没有注入进去的 报了空指针
类似https://www.jianshu.com/p/4b3f55e76637
这个文章的情况
但是我对他解释的原因不是很认同
因为把private改为public后 就没有报空指针
个人猜测是因为Spring 无法得知私有方法的细节,也就无法注入,请大佬讲一下深入一点的原理 ,或者源码

代码类似于

Class AImpl{
        @Autowried
        private Amapper amapper

        priavte void f(){
                    amapper.select();
        }

}
Class Test{
    @Autowried
    private AImpl aImpl;

    public void test(){
        Method method = AImpl.class.getDeclaredMethod("f",null);
        method.setAccessible(true);
        method.invoke(aImpl,null);
    }


}

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-12-10 00:12
    关注
    评论

报告相同问题?

问题事件

  • 请选择合适的标签 11月15日