1.Struts2为什么要整合spring?
答:1.降低控制器(Action)与业务逻辑组件的耦合度,将代码层次的耦合提升至接口层次的耦合。
2.控制器不应该负责逻辑组件的创建,控制器只是业务逻辑组件的使用者。
3.控制器每次创建业务逻辑组件的时候导致性能的降低。
2.Struts2与Spring的两种整合策略分别是什么?各有什么优缺点?
答:第一种:将Action实例交给Spring容器来负责生成和管理,能很好的利用Spring容器的IOC特性。、
优点:提供最好的解耦程度
缺点:配置文件冗余。
第二种:Spring插件创建Action实例后,由Spring容器自动将业务逻辑组件实例注入到Action中。
优点:配置文件简单
缺点:组件之间耦合度又提高至代码层次(为什么耦合度又提高至代码层次了呢? )
3.Spring框架的结构是什么样子的?
答:图就不列出来了,可以参见网址http://www.ibm.com/developerworks/cn/java/wa-spring1/
4.究竟什么是IOC(Inversion of control)?
答:举个例子就是比如说有个人的对象实例它想要调用斧子这个对象实例,这时人是不负责创建斧子实例然后调用的,而是通过容器将斧子实例注入到人对象实例中去的。
5.Struts2配置文件的加载顺序是什么?
答:首先是:struts-default.xml
然后是:struts-plugin.xml
最后是:struts.xml
6.Struts2整和Spring的初始化Spring的两种方式是什么?
答:方式一:通过使用Sping提供的ContextLoaderListener。可以作为监听器进行调用
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
还需要在WEB-INF目录下添加Spring的配置文件applicationContext.xml
方式二:由于servlet2.3以后才支持Listener,所以是使用servlet来调用
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>