我现在主要是看尚学堂马士兵的视频教程来学习SSH,但在实际做项目时遇到了几个问题,希望大家帮忙,在此表示感谢!
一、我之前做了一个练习的小项目是没有用到spring与hibernate,只用了strut2,因此在看SSH整合视频时就整合了一下,Spring与hibernate都可以用了(后者由前者管理),完全正常,但关键的是struts2与spring之间的整合卡住了。没有做此步骤之前,我的项目是可以访问的,但只要把struts2-spring-plugin.jar拷贝到WEB-INF/lib下(其它什么地方都不动),整个项目都无法访问(出现resource()is not avalable),而将其删除掉又恢复正常了。我怀疑我的jar包有问题,因此布置了一下视频教程自带的项目源码,是正常的,然后把其中所有jar包都拷贝到我的lib下,但现像依旧。然后我又把我的源码在它的基础上加进去,又变成不能访问了。不知道大家有没有遇到这种问题???现在我的struts2与spring是分享的……………………二、关于spring的注入问题。我现在对于注入限制的理解是:要注入就一定要注入到接口的实现,否则无法像正常的方式,对之前的implements进行new操作(即上层的普通类[非interface实现]对下层的注入impl对象进行new操作)(或者从applicationContext中拿),问题是:我现在很多类中的方法(如操作excel表)都是普通类的普通方法,如插入数据,读入数据,而不是实现了一个接口,但其中又有一两个要与数据库打交道。那么这种没有实现implements接口的普通类就不可以注入mySessionFactory了,这样的话就只有两种做法。(1)把该类写成接口实现,(2)直接用jdbc。不知道以上我理解得对不对?多谢大家了

解决方案 »

  1.   

    一、应该是jar包有冲突
    二、理解错误,注入的原理是代理,代理可以对类也可以对接口。
      

  2.   

    没错,可以对接口进行代理,也可以对类不过我目前所做的SSH项目,都是代理的接口,business层和manager层都是注入的接口,挺方便的
      

  3.   


    但是我的jar包全部都拷自原来可以用的项目中,郁闷中
      

  4.   

    我找到的地方,但不知道原因是什么就是我用annotation方法,在applicationContext中写base-pakage = "com.e4q"的地方导致的,只要不写e4q,写其它任何字符串都可以访问,但写e4q(我的真正的包名)就访问不了,搞得我实在不知道该怎么搞了,只有用xml方式配置,痛苦
      

  5.   

    1个星期前我开始进行SSH整合学习,1哥星期后被ssh整合了..