JDK的接口代理:只能代理接口
CGLIB的代理:+IOC
SSH整合过程:
1:新建一个web工程,在里面顺次加入Spring(选择其中四个包加入),hibernate(并且进行逆向工程),struts框架添加
2:因为我们要让struts运行的时候知道Spring的存在,也就是说两个先必须认识,以后才能发生关系,而发生关系以后才能用到Spring
来代理struts的Action工作,所以我们要在struts-config.xml中加入plug-in 插件,具体代码如下:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
3:现在在struts的同时已经可以进入applicationContext.xml中读取Spring的配置信息,我们要做的就是让Struts的Action由Spring代理一 下,所以这时候的action的type已经不能直接去进入我们的ActionServlet了,而换成:
type="org.springframework.web.struts.DelegatingActionProxy"
4:接着也就是最后一步,在Spring的配置文件中对Action进行描述,也就是DI注入:
<bean name="/userinfo" class="com.viita.struts.action.UserinfoAction">
<property name="infoservice">
<ref bean="UserService"></ref>
</property>
</bean> 这块要注意的是和普通类的注入方式不同的是 bean的ID属性被换成了name,而且这时的name值必须为你所要注入的这个ActionServlet在struts-config.xml中配置的path值!!
到这里已经大体完成!
运行程序可能会报错,这时这时因为里面包的重复导致的程序无法正确识别,解决方法有两种:
1:删除原来的lib包,导入正确的完整lib包!
2:在工程中删除hibernate3的包,然后进入tomcart中删除已经部署好的工程,再进入自己所建工程中(两个不是一样的),在lib包中加入
三个替换包,然后在eclipse中反部署,重新运行!OK
这里说的并不是很详细,而是简要的说了下SSH的整合步骤,毕竟大家都知道SSH整合的步骤还是很繁琐的!