Recruitment项目搭建与开发指南V_第1页
Recruitment项目搭建与开发指南V_第2页
Recruitment项目搭建与开发指南V_第3页
Recruitment项目搭建与开发指南V_第4页
Recruitment项目搭建与开发指南V_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Recruitment 项目搭建与开发指南Document Revision HistoryVer.No.Ver.DatePrepared ByAffected Section & Summary of;i),Draft of new document structure & content.2011-0830Eric/Amy/RitathRevise/add 4 chapter contentLi1-aaa ahad 4fa s a d* sad 4= a aa a w- had 4fa addNote: Template revision history is available belo

2、w as hidden text. Template Revision HistoryhVer.No.1Ver.PreparedDateBy1Reviewed 1ByApproved ByAffected Section & Summary of Change1-Table of Contents1总述这个Project完全基于开源软体的环境搭建。开发涉及到的技术有Spring 3 +Hibernate 3 + Struts + JSP + JQuery + JAX-WS2 (by Apache CXF) + JAX-RS(by Jersey)+ SpringSecurity 。“Spring

3、Side是以为核心,用主流的技术选型、Pragmatic的编程实践来开发JavaEE企业级应用的总结与演示。”摘自springside 首页。Recruitment 系统是一个 Maven2风格的 Project。介绍本文档为Recruitment(暂定)系统开发人员搭建开发环境与开发参考所用。结构本文档章节结构如下。th chapter 开发环境搭建3th chapter开发调试th chapter Framework 介绍1.3参考文档SpringSide官方网站:Mave2简介:SpringSide3技术参考手册:使用SpringSide3 开发Web目的全过程:1.4 软件包第二方软件

4、地址+无Eclipse svn plugin无&characterEncoding=utf-8项目 Recruitment SVNproject)2搭建开发环境Recruitment 项目项目的SVNt址:脚本:脚本会通过 maven从nexus server上下载第三方依赖到本机,目录在 用户名.m2Windows环境下工具安装开发工具(设置 JAVA_HOME)及以上版本,需要安装 svN1件。Recruitment 项目 tools 目录自带了 Ant 以及 Maveno Ant(设置Path)一些bat档利用Ant做些Task:初始化数据库、项目部o Maven(设置Path)一利用此

5、工具做library 管理、项目生命周期管理。数据库工具开发环境及正式环境均选用mysql数据库。=&characterEncoding=utf-8=root=root二脚本位置:部署工具recuritment 开发环境选用的部署工具是tomcat7或tomcat6。3开发调试3.1.1 导入 Eclipse 项目从 SVN server checkout代码至U eclipse 的 workspace :1)设置 classpath variables为了保证recruitment 项目编译成功,需要设置 classpath variables :Set M2_REPO Classpath

6、var ,它的值是 Maven默认仓库目录(vista 系统 用户名 .m2repository )。Mysql驱动设置将 C:Userstaliu.m2repositorymysqlmysql-connector-java放至U tomcat 的lib目录下。Tomcat调试设置二圭介,一bL用参节项目部署正式环境部署:请参照与文件。4 初探 SpringSide FrameworkArchitect Convention,主介,-tz.用参芳CRUD,主介,-tz.用参芳API doc官网未提供,可以参考源码。1)在下maven仓库有打包好的如下图透过生成了 文档,可以参考。核心类图cla

7、ss SimpleHibernateDaoentityClass)用于用于省略 Dao层,在Service层直接使用通用 SimpleHibernateDao 的构造函数.Method Summaryinthql, values)执行HQLS行批量修改/删除操作.inthql, values)执行HQLS行批量修改/删除操作.criterions)根据Criterion条件创建Criteria.queryString, values)根据查询HQL与参数列表创建Query对象.queryString, values)根据查询HQL与参数列表创建Query对象.void(id)按id删除对象.v

8、oid(entity)删除对象.criteria)为 Criteria 添加 distinct transformer.query)为 Query 添力口 distinct transformer.criterions)按Criteria查询对象列表.hql, values)按HQL查询对象列表.hql, values)按HQL查询对象列表.propertyName, value)按属性查找对象列表,匹配方式为相等.criterions)按Criteria查询唯一对象. Xhql, values)按HQL查询唯一对象. Xhql, values)按HQL查询唯一对象. propertyName

9、, value)按属性查找唯一对象,匹配方式为相等.void()Flush 当前 Session.ids)按id列哀获取对象列表.(id)按id认取对象.()认取全部对象.orderByProperty, booleanisAsc)认取全部对象,支持按属性行序.-()取得对象的主键名.()取得当前 Session.()取得 sessionFactory.voidproxy)初始化对象.I-booleanpropertyName, newValue, oldValue)判断对象的属性值在数据库内是否唯一.void(entity)保存新增或修改的对象. .voidsessionFactory)米用

10、Autowired按尖型注入SessionFactory,当有多个SesionFactory 的时候在子类重载本函数.class HibernateDaoT,PK extends 封装SpringSide扩展功能的Hibernat DAO泛型基类.扩展功能包括分页查询, 按属性过滤条件列表查询.可在Service层直接使用,也可以扩展泛型DAO?类 使用,见两个构造函数的注释.Author:calvinConstructor Summary ()用于Dao层子类的构造函数.sessionFactory, entityClass)用于省略Dao层,Service 层直接使用通用 Hibernat

11、eDao的构造函 数.Method Summaryfilters)按属性过滤条件列表查找对象列表.propertyName, value,matchType)按属性查找对象列表,支持多种匹配方式.(page, criterions)按Criteria分页查询.(page, filters)按属性过滤条件列表分页查找对象.(page, hql, values) 按HQL分页查询.(page, hql, values) 按HQL分页查询.(page)分贞认取全部对象.数据库分页开发举例:cvList的分页1)创建公共的Page类,文件位置如下:2)创建公共有js文件,文件位置如下:3)点击CV L

12、ist, 访问是src/main/java里代码如下:page=new Page();(10);reateSQLQuery( ALLCV_STRII)I.GddEntity;().size();int firstResult=();etMaxResults(maxResults).list();(list); ize()=0)pageNc=pageNo-1;if (pageNo=0) pageNo=1;(pageN。; page = ( page); return SUCCESS 4)返回到的页面是ajax/,页面代码如下:showPageStrNum($, $,5 , ajax/,);Str

13、uts convention插件实践举例: convention-plugin的约定:.默认所有的结果页面都存储在web-inf/content下,你可以通过设置这个属性的值来改变到其他路径。如:则将路径配置到了 web-inf/page 下。默认包路径包含 action,actions,struts,struts2的所有包都会被 struts 作为含有action类的路径来搜索。你可以通过设置属性来修改这个配置。如:则定义了在项目中,包路径包含web和action的将被视为action存在的路径来进行搜索。都将被视为含有action的包路径而被搜索。接着,convention从前一步找到的p

14、ackage以及其子package中寻找的实现以及以action结尾的类: 1. ?.(implements ?.命名空间。从定义的.标示开始到包结束的部分,就是命名空间。举个例子:的命名空间是: /user 。的命名空间是: /user/detail ”convention通过如下规则确定url的具体资源部分:去掉类名的action部分。然后将 将每个分部的首字母转为小写,用-分割,你可以设置 如:还是举个例子:useraction-user userdetailaction -user-detail。结合上面的。对于, 映射的 url 就是 /web-inf/content/user/de

15、tail/struts 支持.jsp .html .htm .vm 格式的文件。下面是action和结果模版的映射关系:|urlresultfile that could matchresult type以上的 内容来 自struts2/hellosuccess/web-inf/content/dispatcher/hellosuccess/web-inf/content/dispatcher/hellosuccess/web-inf/content/freemarker的文档/hello-worldinput/web-inf/content/velocity当然,简单的 通过默/test1/

16、test2/helloerror/web-inf/content/test/test2/dispatcher认的方式来进行配置不能完全满足实际项目的需要。所幸, convention的零配置是非 常灵活的。通过action注释对如下例子:1. package?import ?import ?. publicclass helloaction extends actionsupport ?.action(action1) ?. public stringmethod1() ?. return success; ?. ?.action(/user/action2) ?. public string

17、method2() ?. return success; ?. ?.通过action注释后方法名action注释后调用路径action注释后映射路径method1/action1!./web-inf/content/methodi/user/action2!/web-inf/content/user/通过actions注释1. package?import ?import ?import ?. publicclass helloaction extends actionsupport ?.actions( ?.action(/different/url),?.action(/another/u

18、rl) ?.) ?. public stringmethod1() ?. return “error ” ; ?.我们可以通过:/different/url! 或 /another/url! 来调用 method1 方法。对应的映射路径分另I是 /web-inf/content/different/; /web-inf/content/another/可能误导了大家,一个方法被 action注释后,只是多了一种调用方式,而不是说覆盖了原来的调用方式。比如对于如下例子:package?import ?import ?import ?publicclass helloaction extends

19、actionsupportaction(/another/url) ?public stringmethod1() ?return “error ” ; ?1.我们调用method1方法可以通过两种方式:/hello!映射 url : /web-inf/content/another/url! 映射 url : /web-inf/content/another/可见,两种方式均可对 methodi方法进行调用,唯一的区别就是,两种调用的映射是 不一样的,所以,想跳转到不同的界面,这是一个非常好的选择。通过 namespace注释1. package?import ?import ?import

20、 ?namespace(/other) ?publicclass helloworld extends actionsupport ?public stringmethod1() ?return “error ” ; ? ?action(url) ?public stringmethod2() ?return “error ” ; ? ?action(/different/url) ?public stringmethod3() ?return “error ” ; ? ?通过 /other/hello-world! 访问 method1 方法。通过/other/url! 访问method2方

21、法通过 /different /url! 访问 method3 方法与2切。门注释不同的是,该注释覆盖了默认的namespace(这里是/),此时再用hello! 已经不能访问method1 了.results 和伯$川11全局的(global )全局results 可以被action 类中所有的 action 分享,这种 results 在action 类上使 用注解进行声明1. package?import ?import ?import ?import ?import ?results( ?10.result(name=failure,location=/web-inf/) ?publi

22、cclass helloworld extends actionsupportpublic stringmethod1() ?return “failure ” ; ? ?action(/different/url) ?public stringmethod2() ?return “failure ” ; ? ?时,返回 /web-inf/ 时,返回 /web-inf/ 时,返回 /web-inf/当我们访问/hello -world ! 当我们访问/hello -world !当我们访问/different/url!2本地的(local )。本地results 只能在action方法上进行声明1. package?import ?import ?import ?import ?import ?publicclass helloworld extends actionsupport ?10.action(value=/other/bar,results=result(name=error,locatio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论