1、作为菜鸟,先理解
自己理解:spring是用来实例化struts中的类 和hibernate的类
struts用的是mvc,包括url路由器匹配等。
hibernate 用的是数据库操作。
参考如下:
1.struts就是一个mvc的架构,在控制器,视图和模型方面都有其特定的组件,所以我们在SSH组合中,更多的是利用了controller这个组件。很多人感觉上是利用Struts的View层,的确是这样的,因为我们应用了很多struts的标签,整个页面的工作核心还是在表单提交给action controller的动作上,而在struts的定义中,这是属于C这一层的。所以我们利用的确是controller。
2.spring的话最主要的功能还是它的ioc和aop,即注入依赖和面向切面编程它也有其自己的mvc,当然你可以用struts框架而不用spring的mvc.
3.Hibernate还可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任,使用Structs+Spring+Hibernate的项目主要是在web层利用了struts的mvc框架,在数据库层用hibernate的数据库访问功能,
在bean管理和服务方面利用spring的ioc和aop.
**Spring无法注入?
**
1、Struts中的Action必须用Spring applicationContext.xml中定义的,否者看着办
2、文件都需要复制到WEB-INF/lib下 否则会出问题。
3、Action的name 别和Class 命名一样,否者出问题。
4、修改java类 需要重启下哦 亲
在struts.xml中配置action的class的时候,把包名也加上去了,这样的话struts2就不会用到spring容器,那struts2就会直接去找那个actopm而不是通过Spring的BeanFactory,也就是说bean不在控制范围之内,当然Spring中声名显赫的IOC和AOP就不能用了。。结果在Service中用注入DAO的时候就失效了,抛出一个NullPointerException的异常。
解决:将struts.xml中的action的class属性,由class名改为Spring中定义的bean名
参考:http://hi.baidu.com/herowzz/item/eba8dddfe16ee7e7795daaee
安装方法:
spring第一位 然后是hibernate 最后struts
参考资料:http://xly3000.blog.163.com/blog/static/1324247201231163828803/