欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年Recruitment项目搭建与开发指南_V_ .pdf

    • 资源ID:34883802       资源大小:1.14MB        全文页数:20页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年Recruitment项目搭建与开发指南_V_ .pdf

    Recruitment项目搭建与开发指南名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - HP Restricted Page 2 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. Document Revision History Ver. No. Ver. Date Prepared By Affected Section & Summary of Change 1.0 2011-07-08 EricLiu() Draft of new document structure & content. 2.0 2011-08-30 Eric/Amy/Rita Revise/add 4th chapter content Note: Template revision history is available below as hidden text. Template Revision Historyh Ver. No. Ver. Date Prepared By Reviewed By Approved By Affected Section & Summary of Change 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - HP Restricted Page 3 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. Table of Contents 1总述 . 41.1介绍 . 41.2结构 . 41.3参考文档 . 41.4软件包 . 42搭建开发环境. 52.1Recruitment项目 . 52.2Windows环境下工具安装. 52.2.1开发工具 . 52.2.2数据库工具. 52.2.3部署工具 . 63开发调试 . 63.1.1导入 Eclipse 项目 . 63.1.2Tomcat 调试设置 . 73.1.3项目部署 . 74初探 SpringSide Framework . 74.1Architect Convention . 74.2CRUD . 74.3API doc . 84.4核心类图 . 84.5数据库分页开发. 124.6Struts convention插件实践 . 134.7单元测试实践. 174.8Checkstyle查检代码 . 184.9Sonar 平台使用 . 19名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - HP Restricted Page 4 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 1总述这个 Project 完全基于开源软体springside3.3.4(http:/)的环境搭建。开发涉及到的技术有 Spring 3 + Hibernate 3 + Struts 2.1 + JSP 2.0 + JQuery + JAX-WS2 (by Apache CXF) + JAX-RS(by Jersey)+ SpringSecurity 3.0。“SpringSide是以Spring Framework为核心,用主流的技术选型、Pragmatic的编程实践来开发JavaEE企业级应用的总结与演示。”摘自springside首页。Recruitment系统是一个Maven2 风格的 Project。1.1 介绍本文档为Recruitment(暂定 )系统 开发人员搭建开发环境与开发参考所用。1.2 结构本文档章节结构如下。2th chapter 开发环境搭建3th chapter 开发调试4th chapter Framework介绍1.3 参考文档SpringSide官方网站: http:/在 Eclipse 中调试 Maven 项目: http:/ 简介:http:/ SpringSide3 开发 Web 项目的全过程:http:/ 软件包第三方软件地址Eclipse3.5+(junit4.0) 无Eclipse svn plugin 无Ant1.8.1 $recuritmenttoolsantapache-ant-1.8.1 Maven3.0.3 $recuritmenttoolsmavenapache-maven-3.0.3 Mysql jdbc:mysql:/ 16.173.244.228/interview_system?useUnicode=true&characterEncoding=utf-8 项目 Recruitment SVN svn:/16.173.244.228/svndata/interview_system/03.Code Sonar( 代码质量管理平台) http:/16.173.244.228:9000 单元测试报告http:/16.173.244.228:8080/recruitment/report/html/index.html Redmine( 项目管理工具*论坛 *)http:/16.173.244.228:3000/projects/recruitment Nexus( 管理 maven 仓库的 server) http:/16.173.244.228:8080/nexus 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - HP Restricted Page 5 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. Psp/tsp 无Recuritment系统 (Our project) http:/16.173.244.228:8080/recruitment2搭建开发环境2.1 Recruitment项目项目的 SVN 地址: svn:/16.173.244.228/svndata/interview_system/03.Code Run recruitment_start.bat脚本:脚本会通过maven 从 nexus server 上http:/16.173.244.228:8080/nexus/content/groups/public下载第三方依赖到本机,目录在用户名 .m22.2 Windows环境下工具安装2.2.1 开发工具JDK1.6( 设置 JAVA_HOME) Eclipse3.5及以上版本,需要安装SVN 插件。Recruitment项目 tools 目录自带了Ant 以及 Maven(2.2/3.0) oAnt( 设置 Path) 一些 bat 档利用 Ant 做些 Task :初始化数据库、项目部署tomcat7.0 oMaven( 设置 Path) 利用此工具做library 管理、项目生命周期管理。2.2.2 数据库工具开发环境及正式环境均选用mysql 数据库。jdbc.driver=com.mysql.jdbc.Driver jdbc.url= jdbc :mysql:/localhost/interview_system?useUnicode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=root 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - HP Restricted Page 6 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect Mysql 脚本位置:2.2.3 部署工具recuritment开发环境选用的部署工具是tomcat7或 tomcat6 。3开发调试3.1.1 导入 Eclipse项目从 SVN server checkout 代码到 eclipse 的 workspace :1) 设置 classpath variables 为了保证recruitment项目编译成功,需要设置classpath variables:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - HP Restricted Page 7 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. Set M2_REPO Classpath var,它的值是Maven 默认仓库目录(vista 系统用户名.m2repository)。2) Mysql驱动设置将 C:Userstaliu.m2repositorymysqlmysql-connector-java5.1.15 mysql-connector-java-5.1.15放到 tomcat的 lib 目录下。3.1.2 Tomcat调试设置请参考 http:/m2eclipse.sonatype.org/3.1.3 项目部署正式环境部署:请参照build.xml与 linux.deploy.readme.txt 文件。4初探 SpringSide Framework 4.1 Architect Convention 请参考 http:/ CRUD 请参考http:/ - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - HP Restricted Page 8 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 4.3 API doc 官网未提供,可以参考源码。1) 在 springside-3.3.4modulescoresrc 下2) maven 仓库有打包好的如下图 springside3-core-3.3.4-sources.jar 透过 javadoc.exe生成了 SpringSide3.3.4_API_DOC.zip 文档,可以参考。4.4 核心类图1.public class SimpleHibernateDao extends java.lang.Object 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - HP Restricted Page 9 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 封装 Hibernate 原生 API 的 DAO 泛型基类 . 可在 Service层直接使用 , 也可以扩展泛型 DAO 子类使用 , 见两个构造函数的注释 . 参考 Spring2.5自带的Petlinc例子, 取消了 HibernateTemplate, 直接使用 Hibernate原生 API. Author:calvin Constructor SummarySimpleHibernateDao()用于 Dao 层子类使用的构造函数.SimpleHibernateDao(org.hibernate.SessionFactory sessionFactory, java.lang.Class entityClass)用于用于省略Dao 层, 在 Service 层直接使用通用SimpleHibernateDao 的构造函数 .Method Summary intbatchExecute(java.lang.String hql, java.util.Map values)执行 HQL 进行批量修改/删除操作 . intbatchExecute(java.lang.String hql, java.lang.Object. values)执行 HQL 进行批量修改/删除操作 . org.hibernate.CriteriacreateCriteria(org.hibernate.criterion.Criterion. criterions)根据 Criterion 条件创建Criteria . org.hibernate.QuerycreateQuery(java.lang.String queryString, java.util.Map values)根据查询HQL 与参数列表创建Query 对象 . org.hibernate.QuerycreateQuery(java.lang.String queryString, java.lang.Object. values)根据查询HQL 与参数列表创建Query 对象 . voiddelete( PK id)按 id 删除对象 . voiddelete( T entity)删除对象 . org.hibernate.Criteriadistinct(org.hibernate.Criteria criteria)为 Criteria 添加 distinct transformer . org.hibernate.Querydistinct(org.hibernate.Query query)为 Query 添加 distinct transformer. java.util.List find(org.hibernate.criterion.Criterion. criterions)按 Criteria 查询对象列表. java.util.Listfind(java.lang.String hql, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - HP Restricted Page 10 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. java.util.Map values)按 HQL 查询对象列表. java.util.Listfind(java.lang.String hql, java.lang.Object. values)按 HQL 查询对象列表. java.util.List findBy(java.lang.String propertyName, java.lang.Object value)按属性查找对象列表, 匹配方式为相等.T findUnique(org.hibernate.criterion.Criterion. criterions)按 Criteria 查询唯一对象. XfindUnique(java.lang.String hql, java.util.Map values)按 HQL 查询唯一对象. XfindUnique(java.lang.String hql, java.lang.Object. values)按 HQL 查询唯一对象.T findUniqueBy(java.lang.String propertyName, java.lang.Object value)按属性查找唯一对象, 匹配方式为相等. voidflush() Flush当前 Session. java.util.List get (java.util.Collection ids)按 id 列表获取对象列表.T get ( PK id)按 id 获取对象 . java.util.List getAll()获取全部对象. java.util.List getAll(java.lang.String orderByProperty, boolean isAsc)获取全部对象, 支持按属性行序. java.lang.StringgetIdName()取得对象的主键名. org.hibernate.SessiongetSession()取得当前Session. org.hibernate.SessionFactorygetSessionFactory()取得 sessionFactory. voidinitProxyObject(java.lang.Object proxy)初始化对象 . booleanisPropertyUnique(java.lang.String propertyName, java.lang.Object newValue, java.lang.Object oldValue)判断对象的属性值在数据库内是否唯一. voidsave ( T entity)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - HP Restricted Page 11 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 保存新增或修改的对象. voidsetSessionFactory(org.hibernate.SessionFactory sessionFactory)采用 Autowired 按类型注入SessionFactory, 当有多个SesionFactory 的时候在子类重载本函数.2.public class HibernateDao extends SimpleHibernateDao 封装 SpringSide扩展功能的 Hibernat DAO 泛型基类 . 扩展功能包括分页查询,按属性过滤条件列表查询. 可在 Service层直接使用 ,也可以扩展泛型DAO 子类使用 ,见两个构造函数的注释 . Author: calvin Constructor SummaryHibernateDao()用于 Dao 层子类的构造函数.HibernateDao(org.hibernate.SessionFactory sessionFactory, java.lang.Class entityClass)用于省略Dao 层, Service层直接使用通用HibernateDao 的构造函数 .Method Summary java.util.List find(java.util.List filters)按属性过滤条件列表查找对象列表. java.util.List findBy(java.lang.String propertyName, java.lang.Object value, PropertyFilter.MatchType matchType)按属性查找对象列表,支持多种匹配方式.Page findPage( Page page, org.hibernate.criterion.Criterion. criterions)按 Criteria 分页查询 .Page findPage( Page page, java.util.List filters)按属性过滤条件列表分页查找对象.Page findPage( Page page, java.lang.String hql, java.util.Map values)按 HQL 分页查询 .Page findPage( Page page, java.lang.String hql, java.lang.Object. values)按 HQL 分页查询 .Page getAll( Page page)分页获取全部对象.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 20 页 - - - - - - - - - HP Restricted Page 12 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 4.5 数据库分页开发举例 :cvList的分页1) 创建公共的Page 类,文件位置如下:2) 创建公共有js 文件,文件位置如下:3) 点击 CV List,访问是src/main/java里 com.hp.interview.web.action.CvAction.java,代码如下:page =new Page(); page .setCapacity(10);/每页要显示的条数是10 条page .setPageNo(1); /访问的是第1 页page = candidateService.getAllCv( page ); 4) 最终访问的是src/main/java里 com.hp.interview.web.dao.CandidateDao.java.代码如下:public Page getAllCv(Page page)throws Exception List list=null ; Query query=null ; query =getSession().createSQLQuery(ALLCV_STRING).addEntity(Candidate.class ); page.setTotalRows(query.list().size(); int firstResult=page.getOffset(); /从第几条开始访问int maxResults=page.getCapacity();/访问多少条list=query.setFirstResult(firstResult).setMaxResults(maxResults).list(); page.setValue(list);/返回的集合做为page 对象返回return page; 5) 首次返回页面interview/cv.jsp,页面的代码如下: /*showPageStrNum(总页数,当前是第几页,可以显示的数字数量,请求地址,请求参数)*/showPageStrNum($page.totalPages, 1, 5 , ajax/cv.action,);6) 当点击分页后,访问src/main/java里 com.hp.interview.ajax.web.action.CvAction.java,代码如下:public String list() throws Exception page =new Page(); page .setCapacity(10); page .setPageNo(pageNo ); page = candidateService.getAllCv( page ); if(page .getValue().size()=0) pageNo =pageNo -1; if(pageNo =0) pageNo =1; page .setPageNo( pageNo ); page = candidateService.getAllCv( page ); returnSUCCESS ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - HP Restricted Page 13 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 7) 返回到的页面是ajax/cv.jsp,页面代码如下: showPageStrNum($page.totalPages, $page.pageNo, 5 , ajax/cv.action,);4.6 Struts convention插件实践举例:convention-plugin的约定:1. 默认所有的结果页面都存储在web-inf/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。如:则将路径配置到了web-inf/page 下。默认包路径包含action,actions,struts,struts2的所有包都会被struts 作为含有action 类的路径来搜索。你可以通过设置 struts.convention.package.locators属性来修改这个配置。如:则定义了在项目中,包路径包含web 和 action 的将被视为action 存在的路径来进行搜索。com.ustb.web.*/com.ustb.action.*都将被视为含有action 的包路径而被搜索。接着, convention从前一步找到的package 以及其子package 中寻找 com.opensymphony.xwork2.action 的实现以及以action 结尾的类: 1. com.example.actions.mainaction 2. com.example.actions.products.display (implements com.opensymphony.xwork2.action) 3. pany.details.showcompanydetailsaction 命名空间。从定义的.package.locators标示开始到包结束的部分,就是命名空间。举个例子:com.ustb.web.user.useraction的命名空间是:”/user ”。com.ustb.web.user.detail.useraction的命名空间是: ”/user/detail”convention通过如下规则确定url 的具体资源部分:去掉类名的action 部分。然后将将每个分部的首字母转为小写,用 - 分割,你可以设置struts.convention.action.name.separator 如: 还是举个例子:useraction-user userdetailaction -user-detail。结合上面的。对于com.ustb.web.user.detail.userdetailaction,映射的 url 就是 /web-inf/content/user/detail/user-detail.jsp struts 支持 .jsp .html .htm .vm格式的文件。下面是 action 和结果模版的映射关系:urlresult file that could matchresult type/hellosuccess/web-inf/content/hello.jspdispatcher/hellosuccess/web-inf/content/hello-success.htm dispatcher/hellosuccess/web-inf/content/hello.ftl freemarker/hello-worldinput/web-inf/content/hello-world-input.vmvelocity名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 20 页 - - - - - - - - - HP Restricted Page 14 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 以上的内容来自struts2 的文档 http:/struts.apache.org/2.1.6/docs/convention-plugin.html当然,简单的通过默认的方式来进行配置不能完全满足实际项目的需要。所幸,convention的零配置是非常灵活的。通过 action注释对如下例子: 1. package com.example.web; 3. import com.opensymphony.xwork2.action; 4. import com.opensymphony.xwork2.actionsupport; 6. public class helloaction extends actionsupport 7. action(action1) 8. public string method1() 9. return success; 10. 12. action(/user/action2) 13. public string method2() 14. return success; 15. 16. 通过 action 注释后方法名action注释后调用路径action注释 后映射路径method1 /action1!method1.action. /web-inf/content/action1.jsp method1 /user/action2!method2.action /web-inf/content/user/action2.jsp 通过 actions注释 1. package com.example.web; 3. import com.opensymphony.xwork2.actionsupport; 4. import org.apache.struts2.convention.annotation.action; 5. import org.apache.struts2.convention.annotation.actions; 7. public class helloaction extends actionsupport 8. actions( 9. action(/different/url), 10. action(/another/url) 11. ) 12. public string method1() 13. return “error ”; 14. 我们可以通过: /different/url!method1.action或/another/url!method1.action来调用 method1方法。/test1/test2/helloerror/web-inf/content/test/test2/hello-error.htmldispatcher名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 20 页 - - - - - - - - - HP Restricted Page 15 of 20 ? Copyright 2009 Hewlett-Packard Development Company, L.P Valid agreement required. 对应的映射路径分别是/web-inf/content/different/url-error.jsp; /web-inf/content/another/url-error.jsp可能误导了大家,一个方法被action 注释后,只是多了一种调用方式,而不是说覆盖了原来的调用方式。比如对于如下例子:package com.example.web; 3. import com.opensymphony.xwork2.actionsupport; 4. import org.apache.struts2.convention.annotation.action; 5. import org.apache.struts2.convention.annotation.actions; 7. public class helloaction extends actionsupport 8. action(/another/url) 9. public string method1() 10. return “error ”; 11. 1. 我们调用method1方法可以通过两种方式:/hello!method1.action 映射 url:/web-inf/content/hello-error.jsp /another/url!method1.action 映射 url:/web-inf/content/another/url-error.jsp可见,两种方式均可对method1方法进行调用,唯一的区别就是,两种调用的映射是不一样的,所以,想跳转到不同的界面,这是一个非常好的选择。通过 namespace 注释 1. package com.example.web; 3. import com.opensymphony.xwork2.actionsupport; 4. import org.apache.struts2.convention.annotation.action; 5. import org.apache.struts2.convention.annotation.actions; 6. namespace(/other) 7. public class helloworld extends actionsupport 9. public string method1() 10. return “error ”; 11. 12. action(url) 13. public

    注意事项

    本文(2022年Recruitment项目搭建与开发指南_V_ .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开