Spring @Autowired是如何工作的

Ant*_*ony 47 spring dependency-injection autowired

我遇到了一个@Autowired的例子

public class EmpManager {
   @Autowired
   private EmpDao empDao;
}
Run Code Online (Sandbox Code Playgroud)

我很好奇empDao如何得到集合,因为没有setter方法而且它是私有的.

Don*_*ows 41

Java允许上一个字段或方法的访问控制被关断(是的,有一个安全检查到第一通路)经由AccessibleObject.setAccessible()方法,其是反射框架(二者的一部分FieldMethod从继承AccessibleObject).一旦可以发现并写入该字段,完成其余部分就非常简单; 只是一个简单的编程问题.

  • 如果你没有猜到,我对Spring的代码如何光滑印象深刻.我知道他们是如何做到的,但这不会改变它的好坏. (3认同)

ear*_*las 7

Java允许您通过反射与类的私有成员进行交互.

查看ReflectionTestUtils,这对于编写单元测试非常方便.