猿问

有人说服务器启动时,自动加载struts-plugin.xml文件,可是为什么还要加入这条语句?

struts2和spring整合时 struts.xml文件需要引入语句
<constant name="struts.objectFactory" value="spring" />

但是struts2-spring-plugin.jar包中的struts-plugin.xml中已经加入这条语句

米脂
浏览 72回答 2
2回答

精慕HU

加入是因为若是你有两个创建对象的容器,例如 Spring 和 Plexus,它们都可以创建对象实例化,这个时候为了指定使用哪个就需要指定,要不然可能就是随机去选择。若是你只有spring,则不需要加入<constant name="struts.objectFactory" value="spring" />因为spring-sturcts-plugin.xml里已经加入了<struts>&nbsp;&nbsp;&nbsp; <bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!--&nbsp; Make the Spring object factory the automatic default -->&nbsp;&nbsp;&nbsp; <constant name="struts.objectFactory" value="spring" />&nbsp;&nbsp;&nbsp; <package name="spring-default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <interceptors>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </interceptors>&nbsp;&nbsp;&nbsp; </package>&nbsp;&nbsp;&nbsp;</struts>

一只斗牛犬

若设置了<param-name>config</param-name>参数,那struts-default.xml,struts-plugin.xml等原来struts2默认加载的文件也要手动指定,否则不会自动加载。所以可以省略config的配置
随时随地看视频慕课网APP
我要回答