- 分工:
struts 接收从页面传来的数据(都在内置对象里)
spring 进行管理整个项目的对象,使用IOC来便利化创建和管理类实例
hibernate 使用API操作数据库的表数据,使用提供的API来轻松实现操作,对关联表的操作可以轻松的完成。hibernate的操作对象是实体类,所以使用面向对象的思想去理解数据操作是很容易。
在使用hibernate时,感觉就是操作固定,容易理解,API功能强大,配置好后无需去考虑数据表如何、sql如何。 - 流程:
struts 和spring在web.xml进行配置–>页面通过访问手段来访问定义的action–>
在struts的action类中可以很轻松的获取表单数据,不需要一个一个get了–>
spring管理所以类(bean),使用依赖注入的方式轻松实现类之间的依赖关系–>
spring整合hibernate创建session工厂bean,简化了hibernate的配置,省略了cfg.xml配置。–>spring依赖注入到dao类中,在dao中使用API直接操作实体类(前提已经配置好了实体类的hbm.xml),配置实体类的hbm.xml就是实现关联表数据库和面向对象的实体类的转换“约定”。转换都是hibernate API自动完成的。
注意事宜 :
- ssh的乱码问题
- 注解spring管理,容易出现初始化错误
- hibernate操作的事务管理,有时要使用spring事务管理器(默认在方法上)
和SSM(spring+springMVC+mybatis)进行比较,SSM整合相同要简单些,因为springMVC是spring框架的一部分,springMVC与页面交互更方便,mybatis操作是自己定义sql,就像是自己创建操作数据库的API(类和xml文件进行交互)