ObjectFactory与静态注入
1、ObjectFactory:对象工厂
struts2的action是需要产生对象
struts2中拦截器是需要创建的
struts2的各种结果集也需要创建对象
2、ObjectFactory中的各种方法
buildAction是用来创建action的
buildInterceptor是用来创建interceptor
静态注入:
静态:凡是在struts的xml文件中配置的bean,例如:
<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
在服务器启动的时候就会加载,而且只加载一次,所以为静态
注入:StrutsObjectFactory就给纳入到struts2容器中了,这样的现象为注入
应用:值栈的实现类也是通过静态注入改变的
1、ObjectFactory:对象工厂
struts2的action是需要产生对象
struts2中拦截器是需要创建的
struts2的各种结果集也需要创建对象
2、ObjectFactory中的各种方法
buildAction是用来创建action的
buildInterceptor是用来创建interceptor
buildResult是用来创建结果集
静态注入:
静态:凡是在struts的xml文件中配置的bean,例如:
<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
在服务器启动的时候就会加载,而且只加载一次,所以为静态
注入:StrutsObjectFactory就给纳入到struts2容器中了,这样的现象为注入
应用:值栈的实现类也是通过静态注入改变的
<bean type="com.opensymphony.xwork2.util.ValueStackFactory" name="struts" class="com.opensymphony.xwork2.ognl.OgnlValueStackFactory" />
<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
说明:struts2容器会去读该配置文件中的这个配置,然后决定action是由哪个类来创建的
总结:
1、在struts2中,拦截器,action等内容都是对象,都是通过ObjectFactory类中相应的方法完成的
2、ObjectFactory与静态注入相结合,可以改变struts2容器中的一些内容:
1、创建action的方式
2、生成拦截器的方式
3、结果集的生成