这个是个人的一些看法,随着时间的关系,会进行修改,如果有什么错误也请提出!
首先确认一下准则,就是预定大于配置,尽量减少配置文件的编写,加快开发效率
其实说一下使用的框架的版本,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框架,以及整合的方式了,暂时不讨论
另外暂时把我临时配置的一个文件上传吧
5645

被折叠的 条评论
为什么被折叠?



