要理解Struts2的源代码的一个核心是要理解它的对象容器的实现方式了。涉及的具体代码是接口com.opensymphony.xwork2.inject.Container.java,以及该接口的实现类com.opensymphony.xwork2.inject.ContainerImpl.java。在Struts2中容器的概念主要在于将使用了Inject注解的构造函数、方法和字段的依赖对象注入其中,方便在使用的时候直接从容器中取出对象。
以下为我对类ContainerImpl实现的理解,以注释的形式体现出来: