struts2+Hibernate+spring基础整合相关介绍

很多时候,对于初学者来说,对于整合的时候很难下手,同时呢,初学者对一些src下包的含义也一头雾水,不知道这些包都是什么含义~~~在这里一步一步的教大家如何整合。

首先,在这里给大家讲解一下src包的定义:

struts2+Hibernate+spring基础整合相关介绍_第1张图片

 

com.action:这个包里面放的是一些action类,可以统一定义一个BaseAction,让所有action来继承,在baseaction中定义一些所有action都经常用的东西,如:注入serviceManager

com.common:放的是一些普通的类,比如说:上传类

com.dao:放的是数据访问层的接口,也就是针对数据库操作的一些接口

com.daoImpl:存放的是dao的实现类,在该包里,还可以定义一些继承daoImpl的类,为的是以后项目的可扩展性。

com.service:存放的是业务逻辑控制层类接口,该层会用到daoImpl包的方法类,专门做业务逻辑处理

com.serviceImpl:存放的是service包的实现类,在该包里面,还可以定义一个serviceManager类,对所有的Service类进行统一管理。这一层用来被action调用

com.model:存放的是一些实体模型类和与数据库表的映射文件,也就是JavaBean和*.hbm.xml,该包也有定义为entity的

HibernateSessionFactory:存放的是HibernateSessionFactory类,这个类是添加Hibernate支持的时候自动产生的。用来管理SesionFactory(其实,spring托管以后,这个类就不再使用了)

 

这些包的定义大同小异,不过道理都是一样的,至于包怎么定义,完全靠自己了,只是一定要数据访问层,业务逻辑层层次清晰。

当然,除了这些包,可能还有~~com.interceptor,com.filter等等,看自己怎么定义了!!

 

好了,包结构都知道了,我们开始整合吧~~~

 

首先,添加支持的顺序建议为:struts2--->Spring------->Hibernate

先添加struts2是没什么问题的,至于为什么先添加spring,而不是Hibernate呢?是因为,Hibernate的添加需要一些spring 的支持,当然这也不是绝对的,只是个建议而已。

 

第一:利用myeclipse添加对struts2支持

其实,在前面讲struts的时候,已经讲解过了如何添加支持,也就是三部曲(当然,也可以用myeclipse进行配置)

1,在src中添加struts.xml文件

2,对WEB-INF下的web.xml进行配置

3,添加相关jar包

至于,详细的配置请大家参考前面的struts的相关介绍

第二步:利用myeclipse添加对spring的支持

其实,也没什么特殊的~~

首先,添加spring的相关jar包,(也可用myeclipse自带的相关jar)

其次,点击项目右键--->myeclipse--->add spring capabilities...

接下来,一步一步配置就可以了。

会在src下产生一个applicationContext.xml文件,这个也就是bean的配置文件了

第三步:利用myeclipse添加Hibernate的支持

首先,导入相关jar包

其次,点击项目右键--->myeclipse--->add Hibernate capabilities...

这样呢,就会产生一个HibernateSessionFactroy.java类和hibernate.cfg.xml配置文件,

同时呢,还会在applicationContext.xml中多出以下代码:

 

<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml">
		</property>
	</bean>


这是将sessionFactory对spring进行托管,同时还可以通过配置对Transaction进行托管。这样这就是为什么先配置spring的原因了。

对于Hibernate对spring托管,将会在《Hibernate+spring 的整合》博文中进行讲解。

 

 

至此整个项目配置完成,可以启动部署了~~~

至于,项目运行时有时会出现jar包冲突和缺少的问题,这估计你就会自己解决了吧~~~

 

 

在web开发中一般采用5层架构模式:

表现层--------->业务逻辑层--------->数据访问层--------->持久层--------->数据库

在这里,把数据库也分为了一层。

 

表现层:也就是利用struts2 和前台的交互来实现的。(其实,我觉得把struts分到业务逻辑层也是可以的),所用到的包:com.action

业务逻辑层:相关类主要分布在com.service和com.serImpl包中,主要是利用dao层,实现业务逻辑的处理,被action用来调用。

数据访问层:相关类分布在com.dao和com.daoImpl包里,主要就是多数据的访问,如:对数据库的增删改查等操作,该层不包含任何业务逻辑。不包含用来被业务逻辑层调用

持久层:也就是Hibernate来实现了,主要是分布在HibernateSessionFactory包里的HibernateSessionFactory.java类,给来用来被数据访问层调用操作。

这时候,我们发现并没有spring的身影,其实,spring功能强大多了。它可以把daoImpl,serviceImpl,action等包里的类映射到applicationContext.xml中,进行管理。

这就是IoC(依赖注入或控制反转)了,其功能就是将数据访问层和业务逻辑层进行松耦合,不在通过new来产生对象,直接依赖注入来获取。

其实,spring还可以对将Hibernante以及事务进行托管,统一管理Hibernate,这样就减少了Hibernate的操作,spring还有令一个强大思想AOP面向切面。

详细的讲解请参考《Hibernate+Spring整合》。

 

 

 

好啦,今天就到此为止啦~~~,如有任何问题请留言!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(spring,Hibernate,struts2,SSH整合)