SSH2详细(框架搭建)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SSH2框架搭建版本:struts2.1.6spring2.5.6hibernate3.3.1SSH2与SSH1之简要比较SSH框架的优势开发效率高适应客户的需求随机变化SSH1框架的劣势繁琐的配置文件编写struts1.XAction线程安全,仅允许一个实例去处理所有请求Forward过于繁琐对Servlet依赖过强SSH2与SSH1之简要比较SSH2优势大量简化配置文件编写。更大程度解耦合Struts不再依赖Servlet通配符配置注解使用struts2使用struts2借鉴webwork的成功之处,兼容struts1,集合两者优点,更易于整合spring及hibernate框架。所需jar包:struts2相关配置web.xml文件配置与struts1不同,struts2采用Filter进行配置filterfilter-namestruts/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class/filterfilter-mappingfilter-namestruts/filter-nameurl-pattern*.do/url-pattern/filter-mappingstruts2相关配置struts.xml文件配置在项目src目录下添加struts.xml配置文件。其基本配置如下:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//ENstrutspackagename=defaultextends=struts-defaultnamespace=actionresult/result/action/package/strutsstruts2相关配置struts.xml常用配置为简化配置文件编写,struts2提供通配符支持,如下:actionname=“*”class=“com.demo.{1}Action”method=“show”/action同时,struts2还支持*/*的配置模式,在配置文件中struts节点下配置如下:constantname=struts.enable.SlashesInActionNamesvalue=true/constant则以上配置可改写为:actionname=“*/*”class=“com.demo.{1}Action”method=“{2}”/actionstruts2相关配置struts.xml常用配置struts2默认访问后缀为.action,不符合访问习惯,且过于繁琐,可在struts标签下配置如下:constantname=struts.action.extensionvalue=do/constant则可使用习惯的.do方式访问整合spring框架添加spring核心包及struts2-spring-plugin-2.1.6.jar。src目录下添加applicationContext.xml文件。web.xml配置:context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath*:applicationContext*.xml/param-value/context-paramlistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listenerspring相关配置applicationContext.xml常用配置dataSource配置:!--数据源配置--beanid=dataSourceclass=com.mchange.v2.c3p0.ComboPooledDataSourcedestroy-method=closepropertyname=driverClassvalueoracle.jdbc.OracleDriver/value/propertypropertyname=jdbcUrlvaluejdbc:oracle:thin:@127.0.0.1:1521:ORADB/value/propertypropertyname=uservaluescott/value/propertypropertyname=passwordvaluetiger/value/property/beanspring相关配置applicationContext.xml常用配置:sessionFactory配置:beanid=sessionFactoryclass=org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBeanpropertyname=dataSourceref=dataSource/propertyname=hibernatePropertiespropspropkey=hibernate.dialectorg.hibernate.dialect.Oracle9iDialect/proppropkey=hibernate.show_sqltrue/proppropkey=hibernate.hbm2ddl.autoupdate/prop/props/propertypropertyname=packagesToScanlistvaluecom.ssh.**.model/value/list/property/beanspring相关配置applicationContext.xml常用配置事务配置:!--事务配置--beanid=transactionManagerclass=org.springframework.orm.hibernate3.HibernateTransactionManager/bean!--使用annotation定义事务--tx:annotation-driventransaction-manager=transactionManagerproxy-target-class=true/spring相关配置applicationContext.xml常用配置自动装配:!--使用annotation自动注册bean,并检查@Required,@Autowired的属性已被注入--context:component-scanbase-package=com.ssh.demo/整合spring后struts配置struts.xml配置在struts标签下配置:constantname=struts.objectFactoryvalue=spring/constantconstantname=struts.objectFactory.spring.autoWirevalue=name/constant此时Action配置可修改如下:actionname=“*/*”class=“{1}Action”method=“{2}”/action整合hibernate添加hibernate核心包。无需编写配置文件,相关配置已在spring配置文件applicationContext.xml中完成。SSH2框架开发相关注解spring自动装配相关注解:@Repository—Dao类自动注入@Service—业务类自动注入@Controller—Action自动注入@AutoWare—自动装配已注入JPA相关注解用于领域建模:@Entity(name=EntityName)必须,name为可选,对应数据库中一的个表@Table(name=,catalog=,schema=)可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名catalog:可选,表示Catalog名称,默认为Catalog().schema:可选,表示Schema名称,默认为Schema(“”).@id必须@id定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.置于getXxxx()前.JPA相关注解@GeneratedValue(strategy=GenerationType,generator=)可选strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE和TABLE4种,分别表示让ORM框架自动选择,根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生成主键,默认为AUTOgenerator:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定uuid等主键生成方式.示例:@Id@GeneratedValues(strategy=StrategyType.SEQUENCE)publicintgetPk(){returnpk;}JPA相关注解@Basic(fetch=FetchType,optional=true)可选@Basic表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXxxx()方法,默认即为@Basicfetch:表示该属性的读取策略,有EAGER和LAZY两种,分别表示主支抓取和延迟加载,默认为EAGER.optional:表示该属性是否允许为null,默认为true示例:@Basic(optional=false)publicStringgetAddress(){returnaddress;}JPA相关注解@Column可选@Column描述了数据库表中该字段的详细定义,这对于根据JPA注解生成数据库表结构的工具非常有作用.name:表示数据库表中该字段的名称,默认情形属性名称一致nullable:表示该字段是否允许为null,默认为trueunique:表示该字段是否是唯一标识,默认为falselength:表示该字段的大小,仅对String类型的字段有效insertable:表示在ORM框架执行插入操作时,该字段是否应出现INSETRT语句中,默认为trueupdateable:表示在ORM框架执行更新操作时,该字段是否应该出现在UPDATE语句中,默认为true.对于一经创建就不可以更改的字段,该属性非常有用,如对于birthday字段.columnDefinition:表示该字段在数据库中的实际类型.通常ORM框架可以根据属性类型自动判断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是TIMESTAMP.此外,String的默

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功