hibernate 的开发jar 包主要集中在 required 目录和核心jar 包,还需要特别说明的是它的日志包问题:hibernate 使用了slf4j 来记录日志,但是slf4j 只是一个日志记录标准,需要具体的实现才可以进行日志记录,我 们可以使用它本身的实现(如slf4j-simple-1.5.8.jar),也可以使用其它的实现,如log4j 来记录日志,但是使用log4j 需要导入slf4j-log4j12-1.5.8.jar 来进行适配。在这里为了 和spring 的日志记录结合,我们使用了log4j 的实现。而要使用log4j 日志记录,可以在 spring 的lib 子目录中找到。Spring 框架中除了常用的jar 包外,还增加了dbcp 连接池相 关的包,需要说明的是连接池的基本包为:dbcp、pool、collections(在hibernate 中已 导入)。为了与strus 相结合,还增加了一个spring-webmvc-struts.jar 包。 经验:spring 的作用是来集成其它的框架,所以对于许多集成所要用到的jar 包,在spring 中都能找到,因而对于项目中出现的类装载相关的错误,应首先查看jar 包是否冲突,是否 导入了需要的包,建议集成时,其它框架只需导入它们自己所需的基本包,而对于集成所用 的包都可以从spring 提供的lib 中查询。 2.集成spring+hibernate 对于框架的集成最好的方式是分布集成,比如这里先集成spring+hibernate 并测试,测试 通过后再来集成struts。 步骤一、建立接口UserServeice,代码如下: packagecom.asm.service; public interface UserService { public abstract void save(User user); public abstract void delete(Integer id); public abstract void update(User user); public abstract User getUser(Integer id); @SuppressWarnings("unchecked") public abstract List getUsers(); } 步骤二、对应的实现类UserServiceBean,代码如下: packagecom.asm.service.impl; public class UserServiceBean implements UserService { @Resource privateSessionFactory sf; @Transactional public void save(User user) { sf.getCurrentSession().persist(user); } ...其它实现方法省略 } 注意事项:(1)在每个方法上都要加上事务注解,特别是save和update方法一定要加上事务注 解,因为把sessionFactory对象是通过spring注入(注解方式注入),而spring中配置的 sessionFactory对象又纳入了spring容器的事务管理,所以要加上事务标记。(2)一定要 通过getCurrentSession方法得到session对象,因为使用openSession方式得到的 Session对象不受spring容器管理。 实体类User及相应的User.hbm.xml配置在此省略。 步骤三、在beans.xml中进行配置,内容如下: ...数据源配置,省略其它,可参看“与jdbc的集成”。 com/asm/entity/User.hbm.xml