SSH三大框架整合

第一,分清容器和工具的区别

Spring是容器,它的特性是IoC和DI,所以,可以先配置起来,因为先要有这个容器,才谈得上往这个容器中放进需要的东西。当然,也可以先有Hibernate 或者Struts这两个工具中的其一,但逻辑上不好理解。

第二,分步骤配置

因为配置文件的复杂关系,我们在配置的时候,极易造成混乱。比如在Spring配置文件中配置实例化的时候,需要先对实体类映射文件进行配置,需要对现有Action,Service,Dao进行关联配置。

所以,我们可以在配置时,根据需要分布进行。在配置完Spring容器后,对其完整性和系统性进行验证,确保它的独立运行是正常的。同理,在配置Hibernate和Struts2的时候,也要先对他们各自的独立功能进行验证,确保各自能独立运行。

第三,Spring接管

我们知道,Hibernate是针对持久层也就是数据库的操作,我们可以用直接操作实体类数据的方式来代替对数据库记录的操作,它依赖SessionFactory产生的Session对象来进行操作。这个SessionFactory就相当于数据库中的DataSource,既然Spring可以管理DataSource,所以也理应可以管理SessionFactory。确实是这样,只需要将Dao的实现类继承HibernateDaoSupport即可。这样我们就很容易在Spring的配置文件中对SessionFactory进行实例化,并在Dao实例中注入这个sessionFactory。除此以外,还要将sessionFactory注入到HibernateTemplate里面,因为Spring会根据sessionFactory 生成模版,由模版进行对持久层增删改查的操作。

当然,随后一定不要忘记在配置文件中配置包扫描和事务管理器。

第四,注解

加注解的地方主要有持久层,业务层,动作层,还有实体类文件中。

持久层主要就是为持久层命名,以便业务层的属性注入。并且将私有的HibernateTemplate注解上@Autowired或@Resource,以便通过配置文件创建对象。

业务层,除了为业务层命名和将持久层的相关对象注入之外,还要加上事务。注入持久层对象的方法和持久层注入HibernateTemplate的方法如出一辙。配置事务可以在方法上,也可以在业务层的类上面,但是方法的优先级高于类上的。

动作层,在类上面,要加的四个注解是@Controller,@Scope,@ParentPackage和@Namespace,相应的取值依自身需求而定。每个动作类的action方法上都要加上@Action并指明其name和results属性。results属性表示动作方法执行成功或失败后跳转到页面或其他方法的动作,其中有name,type,location三个属性,取值按需求而定。

到这里,如果没有导错包,应该就完成了三大框架的整合。

你可能感兴趣的:(SSH三大框架整合)