`

hibernate3.5与spring2.5.5整合最佳实践

阅读更多

这个是个人的一些看法,随着时间的关系,会进行修改,如果有什么错误也请提出!

首先确认一下准则,就是预定大于配置,尽量减少配置文件的编写,加快开发效率

其实说一下使用的框架的版本,hibernate3.5以上,spring 2.5.5以上,因为用到的注解,

本例使用的hibernate为3.5.5,spring 3.0.4,数据库使用mysql

这里只贴出关键部分的配置,其他细节自己补充

 

<!--因为spring要使用注解,所以添加如下代码-->
<context:component-scan base-package="com.公司名.项目名" />
<!--配置hibernate SessionFactory属性-->

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
       <property name="dataSource" ref="dataSource" />
      <!--这里设定了数据库与java类中的映射规则,javabean按java规范定义,数据库按加下划线的形式定义-->
       <property name="namingStrategy">
              <bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
       </property>
       <property name="hibernateProperties">
              <props>
                     <!--数据库方言-->
                     <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
                     <!--是否显示执行的sql语句-->
                     <prop key="hibernate.show_sql">false</prop>
                     <!--同步Javabean与数据库表结构-->
                     <prop key="hibernate.hbm2ddl.auto">update</prop>
             </props>
       </property>
       <property name="packagesToScan" value="com.公司名.项目名..*" />
</bean>
<!--配置事务-->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
       <property name="sessionFactory">
              <ref local="sessionFactory" />
       </property>
</bean>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="get*" read-only="true" />
            <tx:method name="find*" read-only="true" />
            <tx:method name="*" />
        </tx:attributes>
 </tx:advice>
 <aop:config>
        <aop:pointcut id="interceptorPointCuts" expression="execution(* com.公司名.项目名..service.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />        
  </aop:config>
 

这样再加上一些附加的配置,比如DataSource等配置就搭好基本架构了

之后建议的包名结构如下:

DAO层:com.公司名.项目名.模块名.dao

Service层:com.公司名.项目名.模块名.service

Action层:com.公司名.项目名.模块名.action

Pojo层:com.公司名.项目名.模块名.pojo

自己写的工具类层:com.公司名.项目名.模块名.utils

然后说一下开发的流程,

1.先确定实体,以及实体与实体的关系,建立好模型,个人倾向于hibernate中推荐的开发流程,就是先写javabean以及配置信息,之后生成数据库

具体hibernate开发事项请参考另一篇文章

http://finallygo.iteye.com/blog/1040377

2.之后写DAO:在DAO的类上加@Repository注解,表示这个组件是持久化的

查询的时候优先使用Criteria配合Example的模式,因为这样便于不容易出错,且便于修改,如果复杂一些的用HQL,再复杂的用SQL

3.再写Service:在Service的类上加@Service注解,表示这个组件是业务层的,同时对于依赖的组件(DAO或者其他Service)添加@Resource注解

@Resource注解默认以ByName的形式注入,如果找不到就ByType,如果还是找不到就会抛异常,说至少要有一个满足条件的组件被注入

4.最后写Action,这里涉及到使用的MVC框架,以及整合的方式了,暂时不讨论

另外暂时把我临时配置的一个文件上传吧

 

分享到:
评论

相关推荐

    struts2+hibernate3.3.2+Spring2.5.5整合示例

    这个"struts2+hibernate3.3.2+Spring2.5.5整合示例"压缩包文件(WebOA)可能包含了一个简单的Web应用实例,演示了如何将这三个框架集成在一起。由于压缩包中没有包含所有必要的库,开发者在使用时需要自行下载相应的...

    struts2hibernate3.3.2+Spring2.5.5整合所有jar包

    Spring与Struts2和Hibernate整合后,可以实现服务层的事务管理,使得业务逻辑的处理更为高效和健壮。 整合这三个框架的过程主要包括以下几个步骤: 1. 添加依赖:首先,需要在项目中引入这三个框架的所有必需jar包...

    Hibernate3.3.1+Spring2.5.5+Struts2 2.0.1.2例子

    SSH框架整合是Java Web开发中的常见实践,SSH指的是Struts2、Spring和Hibernate这三个开源框架的首字母缩写。这个例子展示了如何将Hibernate3.3.1、Spring2.5.5和Struts2 2.0.1.2集成到一个项目中,以实现高效、灵活...

    Struts2.1.6+Hibernate3.3.2+Spring2.5.5+Extjs3.0.0+Annotations

    ### Struts2.1.6 + Hibernate3.3.2 + Spring2.5.5 + Extjs3.0.0 + Annotations 整合开发 #### 一、技术栈概述 本篇文章将详细介绍如何使用Struts2.1.6、Hibernate3.3.2、Spring2.5.5和Extjs3.0.0以及Annotations来...

    spring 2.5.5源碼包,jar 包,源代碼

    spring 2.5.5源碼包,jar 包,源代碼 spring 2.5.5源碼包,jar 包,源代碼

    Spring 2.5.5

    4. **数据访问集成**:Spring 2.5.5加强了与各种持久层技术的集成,包括JDBC、Hibernate、MyBatis等。使用`@Transactional`注解可以轻松实现事务管理,降低了数据库操作的复杂性。 5. **Spring表达式语言(SpEL)**:...

    Spring2.5.5的jar包.zip

    开发一个基本的spring Application所需要用到的最小包: spring-beans.jar,spring-core.jar 开发一个基本的spring WebApplication所需要用到的最小包: spring-beans.jar,spring-core.jar,spring-web.jar,...

    Spring2.5.5的jar包

    开发一个基本的spring Application所需要用到的最小包: spring-beans.jar,spring-core.jar 开发一个基本的spring WebApplication所需要用到的最小包: spring-beans.jar,spring-core.jar,spring-web.jar,...

    spring2.5.5_API.chm

    4. **数据访问**:Spring 2.5.5包含了对JDBC、ORM(如Hibernate、JPA)的集成,简化了数据库操作。 5. **Java配置**:引入了基于Java的配置,使得在不使用XML的情况下也能进行Spring应用的配置。 三、API文档结构 ...

    spring2.5.5.zip

    5. **数据访问集成**:Spring支持多种数据访问技术,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和MyBatis。它提供了一种统一的接口来简化数据库操作,减少与底层技术的耦合。 6. **事务管理**:...

    spring2.5.5

    5. **Spring Portlet MVC**:对于portlet应用的开发,Spring 2.5.5提供了Portlet MVC框架,与Web MVC类似,但专为portlet容器设计。 6. **更多对第三方库的支持**:Spring 2.5.5增强了对各种流行库的兼容性,包括...

    spring-framework-2.5.5

    最后,Spring还提供了对JDBC、ORM框架(如Hibernate和MyBatis)的抽象层,简化了数据库操作。在Spring 2.5.5中,你可以使用JdbcTemplate或者HibernateTemplate来实现数据库访问。 总之,Spring 2.5.5虽然不是最新...

    spring2.5.5-lib

    4. **数据访问集成**:Spring提供了与各种持久层技术的集成,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和MyBatis。它简化了数据库操作,支持声明式事务管理。 5. **MVC(Model-View-Controller)...

    Struts2.2+Spring2.5.5+Hibernate3.4项目及开发jar包

    通过提供的SSH2开发jar包和空项目,初学者可以快速搭建起一个基础的Web应用框架,进一步学习和实践SSH2的整合与应用。这有助于提升开发者在企业级应用开发中的技能和经验,为日后的项目开发打下坚实的基础。

    spring2.5.5_API

    spring2.5.5_API.rar,学习Spring的好帮手

    HSSEADemo:Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0 Annotations方式快速开发框架

    Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0 Annotations方式快速开发框架 介绍 这是一个整合Hibernate, Spring, Struts2,并配合Extjs来快速开发增删改查功能的架构示例,对于系统中需要的配置信息大部分是...

    spring 2.5.5

    6. **Bean工厂与ApplicationContext**:Bean工厂是Spring的核心,2.5.5版本中,ApplicationContext接口提供了更多的企业级服务,如消息源、国际化支持等。 7. **容器扩展**:Spring 2.5.5引入了基于注解的配置,...

    spring-2.5.5-sources.jar

    spring2.5.5 源码包,虽然很老,但有时候要看老代码,还是有用的

Global site tag (gtag.js) - Google Analytics