JavaSSH框架技术规范

上传人:cl****1 文档编号:563445124 上传时间:2023-10-29 格式:DOC 页数:28 大小:418.01KB
返回 下载 相关 举报
JavaSSH框架技术规范_第1页
第1页 / 共28页
JavaSSH框架技术规范_第2页
第2页 / 共28页
JavaSSH框架技术规范_第3页
第3页 / 共28页
JavaSSH框架技术规范_第4页
第4页 / 共28页
JavaSSH框架技术规范_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《JavaSSH框架技术规范》由会员分享,可在线阅读,更多相关《JavaSSH框架技术规范(28页珍藏版)》请在金锄头文库上搜索。

1、航安项目(三期)框架技术规范日期版本简述作者2011年3月1日V1.0指定本系统的技术规范2011年9月25日V2.0指定本系统的技术规范 航安项目框架技术规范目 录1、规范配置说明12、系统三层架构规范配置说明12.1 Dao22.2 Entity42.3 Service43、Spring规范配置说明53.1 IOC配置说明53.2 集成Hibernate配置说明53.3 AOP配置说明64、Hibernate规范配置说明74.1 Hiebernate的基本配置74.2 对象标识符号84.3 Hibernate映射类型94.4 Hibernate的HQL语言105、Struts规范配置说明1

2、35.1 struts2-convention插件概述135.2 struts2-convention具体配置及规范说明145.3 Struts.xml配置文件155.4 Web目录规范说明166、JPA规范配置说明176.1 Entity Identity 实体标识176.2 Accessor of Persistent Fields and Properties 持久化值域和属性的访问器186.3 Persistence Context 持久化上下文186.4 Entity Instances Life Cycle 实例对象生命周期196.5 Entity Relationships 实体

3、关系196.6 Inheritance 继承206.7 Optimistic Locking and Concurrency 乐观锁及并发控制206.8 本系统JPA例子216.9JPA注解详细说明221、规范配置说明在JavaEE企业级开发中,以SSH框架为核心的应用非常广泛,航安项目实现全注解式的开发。用到SSH框架的版本为:6.4+JPA,用到的工作流流程管理框架为JBPM:JBPM4.4,框架(sinoframe)的服务器上SVN的地址是:。航安系统(sms)的服务器上SVN的地址是:。2、系统三层架构规范配置说明这章为大家说明系统的层次结构,并实现除WEB层的部分功能代码,详细代码请

4、在源码中查看。系统一共分为:dao、entity、service、web四层。另外在这些层次下,还以业务功能再进行分包,这样做是为了方便在以后的功能扩展中,能更好的管理和维护代码。如果将所有类都直接集中在这4个包下面,随着类的增加,会越来越难以维护,而且查找起来也很费劲。2.1Dao先建立BaseHibernateDao,它是通过继承Spring提供的DaoSupport来实现持久层的基类,并且封装了一些基本操作方法。这是BaseHibernateDao的部分代码。大家在写Dao时,可以直接继承BasehibernateDao。持久层的Dao类是根据实体类定义,一般是一个实体类就会有一个对应的

5、Dao类。当然这要跟业务需求来设计,不是绝对的。这些定义的方法是供service层调用,在业务层,将不会看到一行与持久层有关的代码,降低藕合性是这样做的目的。Repository注解的作用就是标注这个UserDao是一个持久层组件。component-scan它就是用来将标有Repository,Service这样的注解类扫描到Spring的容器里,并且同时对标有Resource注解的Bean启用了自动注入功能。使用注解的方法,可以告别繁琐的配置文件定义。2.2Entity关于实体的定义就是使用JPA注解。详见JPA规范说明。2.3ServiceService表示这是业务层组件。在业务层需要对

6、调用的Dao类的Set方法加上Resource注解,这里将业务层的方法名与持久层的方法名定义大家可以按自己的想法来做。3、Spring规范配置说明3.1IOC配置说明根据base-package指定的路径,扫描其下所有包含注解的Bean,并自动注入。比如Repository,Service这些都是注解,前者表示持久层,后者表示业务层。有了它,将不用再去写那繁琐的。本系统的主旨就是全注解,就是为了告诉大家不用写配置文件(当然不是绝对不写)来怎样进行开发工作。3.2集成Hibernate配置说明这就是在Spring中定义Hibernate相关的配置,Spring已经集成了这部分功能。通过class

7、里面定义的类名称我们很容易就能理解,这是使用注解的方式映射实体以及创建Hiberante SessionFactory。其中包含了hibernate.dialect、hibernate.show_sql等和数据源JNDI的配置,当applicationContext-common.xml定义好之后,就不用再对它进行修改。详细内容见Hibernate规范。3.3AOP配置说明这是事务定义,而且是使用注解方式定义事务(Transactional)。上面这个就是使用配置式来定义事务,注解式只用写一句话,然后在业务类或方法中加入Transactional这个注解标记,就完成事务声明,不过对于每个业务类

8、都需要在类或方法中加入这些标记。以下为事物传播与隔离机制的参考:事物传播行为介绍:Transactional(propagation=Propagation.REQUIRED) 如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)Transactional(propagation=Propagation.NOT_SUPPORTED) 容器不为这个方法开启事务Transactional(propagation=Propagation.REQUIRES_NEW) 不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务Transactional(propagatio

9、n=Propagation.MANDATORY) 必须在一个已有的事务中执行,否则抛出异常Transactional(propagation=Propagation.NEVER) 必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)Transactional(propagation=Propagation.SUPPORTS) 如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.事物超时设置:Transactional(timeout=30) /默认是30秒事务隔离级别:Transactional

10、(isolation = Isolation.READ_UNCOMMITTED)读取未提交数据(会出现脏读, 不可重复读) 基本不使用Transactional(isolation = Isolation.READ_COMMITTED)读取已提交数据(会出现不可重复读和幻读)Transactional(isolation = Isolation.REPEATABLE_READ)可重复读(会出现幻读)Transactional(isolation = Isolation.SERIALIZABLE)串行化4、Hibernate规范配置说明4.1Hiebernate的基本配置 Hibernate的数

11、据库连接信息是从配置文件中加载的。Hibernate的配置文件有两种形式:一种是XML格式的文件,一种是properties属性文件。本系统是以XML格式的方式集成在Spring的配置文件中。Hibernate配置文件包含了一系列属性的配置(本系统目前是通过JNDI来连接数据库,作为框架搭建阶段,数据库自己选择):#指定数据库使用的驱动类#指定数据库连接串hibernate.connection.url = jdbc:mysql:/localhost:3306/db#指定数据库连接的用户名hibernate.connection.username = user#指定数据库连接的密码hibern

12、ate.connection.password = password#指定数据库使用的方言#指定是否打印SQL语句hibernate.show_sql=true #数据库连接池的大小=20#指定Hibernate每次从数据库中取出并放到JDBC的Statement中的记录条数。(Fetch #Size设的越大,读数据库的次数越少,速度越快,Fetch Size越小,读数据库的次数#越多,速度越慢)jdbc.fetch_size=50#指定Hibernate批量插入,删除和更新时每次操作的记录数。(Batch Size越大,批量#操作的向数据库发送Sql的次数越少,速度就越快,同样耗用内存就越大

13、)jdbc.batch_size=23#是否允许Hibernate用JDBC的可滚动的结果集。jdbc.use_scrollable_resultset=false#连接数据库时是否使用Unicode编码Connection.useUnicode=true#连接数据库时数据的传输字符集编码方式,最好设置为gbk,用gb2312有的字符不全connection.characterEncoding=gbk在XML格式的配置文件中,除了基本的Hibernate配置信息,还可以指定具体的持久化类的映射文件,这可以避免将持久化类的配置文件硬编码在程序中。4.2对象标识符号 在关系数据库表中,主键(Pri

14、mary Key)用来识别记录,并保证每条记录的唯一性。在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两个变量引用的对象值是否相同来判断两对象是否相等。Hibernate为了解决两者之间的不同,使用对象标识符(OID)来标识对象的唯一性。OID是关系数据库中主键在Java对象模型中的等价物。在运行时,Hibernate根据OID来维持Java对象和数据库表中记录的对应关系。标识的生成可以使用不同的策略,表1为Hibernate内置的标识生成策略。表1:Hibernate标识生成策略标识符生成器描述increment适用于代理主键。由Hibernate自动以递增方式生成

15、。identity适用于代理主键。由底层数据库生成标识符。sequence适用于代理主键。Hibernate根据底层数据库的序列生成标识符,这要求底层数据库支持序列。hilo适用于代理主键。Hibernate分局high/low算法生成标识符。seqhilo适用于代理主键。使用一个高/低位算法来高效的生成long,short或者int类型的标识符。native适用于代理主键。根据底层数据库对自动生成标识符的方式,自动选择identity、sequence或hilo。uuid.hex适用于代理主键。Hibernate采用128位的UUID算法生成标识符。uuid.string适用于代理主键。UUID被编码成一个16字符长的字符串。assi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号