• 1. J2EE集成开发培训
  • 2. J2SE简介-SCJP模块1──起步 模块2──标识符、关键字和类型 模块3──表达式和流程控制 模块4──数组 模块5──对象和类 模块6──高级语言特性 模块7──异常 模块8──建立GUIs 模块9──AWT事件模型 模块10──AWT组件库 模块11──Java基础类 模块12──Java Applets介绍 模块13──线程 模块14──流式I/O和文件 模块15──网络参考文档:SCJP考纲、培训教程
  • 3. J2EE简介J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持。 J2EE的13种核心技术:JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA, JavaMail 和 JAF
  • 4. J2EE项目开发过程
  • 5. 框架 Framework框架是设计模式的具体实现。但比模式更明确。 使用框架替代模式的好处:通过一定强制性机制确保结构层次清晰。 框架选择:Java世界是自由选择,每个层多种多样的框架产品可供选择。
  • 6. 多层框架实现表现层(MVC模式): Struts/SpringMVC/JSF 业务层:EJB/Spring 它们是不同模式和技术的实现。 持久层:Hibernate/JDO/iBatis/EJB
  • 7. Struts+Spring+Hibernate架构
  • 8. SSH架构实例Domain/POJODAOServicePresentUserUser.hbm.xml持久层业务层表示层UserDaoUserHibernateDaoUserManagerUserManagerImpUserActionIoCIoC架构体系示例JSPimpimp域对象层
  • 9. 框架相关技术介绍Struts 使用率最高的MVC WEB框架 参考文档:Struts In Action 掌握要求:★ ★ ★ ★ ★ Spring 核心的IoC、AOP框架,充分使用了其事务处理和AoP拦截等强大功能 参考文档:spring2.0-reference.pdf 掌握要求:★ ★ ★ Hibernate 业界主流的ORM框架 参考文档:hibernate3中文.pdf 掌握要求:★ ★ ★ ★ ★
  • 10. Struts协作图Demo演示
  • 11. Spring核心概念IoC控制反转 面向接口编程 AOP拦截 事务管理
  • 12. Hibernate核心概念OR-Mapping对象关系映射 映射定义 关联关系映射 HQL、Criteria 数据库方言 hbm2ddl,映射生成数据表
  • 13. 框架相关技术介绍Eclipse 使用最广泛的Java集成开发工具 搜索关键词: Eclipse 掌握要求:★ ★ ★ ★ ★ CVS 代码版本控制 搜索关键词: cvs 掌握要求:★ ★ ★ ANT、 XDoclet 平台无关性的脚本引擎,代码和配置文件生成框架 搜索关键词: ant XDoclet http://xdoclet.sourceforge.net/ 掌握要求:★ ★ JUnit 单元测试工具 搜索关键词: JUnit 掌握要求:★
  • 14. 框架相关技术介绍JDK5.0 框架大量使用了JDK5新特性,例如泛型、for循环增强、自动包装 搜索关键词:JDK5新特性汇总 掌握要求:★ ★ ★ JSTL、EL 大量运用标签和EL表达式提高页面代码可读性 搜索关键词: JSTL EL 掌握要求:★ ★ ★ ★ ★ ExtremeTable 功能强大,灵活配置的表格数据显示组件 搜索关键词: ExtremeTable 掌握要求:★ ★ ★
  • 15. 框架相关技术介绍Acegi 基于角色控制的安全框架,通过扩展实现了完整的页面、方法权限控制和ACL对象控制 搜索关键词:Spring Acegi 掌握要求:★ ★ Quartz 功能强大的定时任务执行组件 搜索关键词: Quartz 掌握要求:★ ★ DWR AJAX框架 搜索关键词:AJAX DWR 掌握要求:★ ★
  • 16. 框架相关技术介绍XFire WebService引擎 搜索关键词: WebService XFire 掌握要求:★ ★ Sitemesh 有效的分离内容和样式的框架技术 搜索关键词: Sitemesh 掌握要求:★ Prototype.js/ scriptaculous.js 快速高效的Javascript的功能、特效类库 搜索关键词:Prototype scriptaculous 掌握要求:★ ★
  • 17. 框架相关技术介绍ActiveMQ 消息中间件,实现系统的异步处理能力,例如大量的群发通知邮件 搜索关键词: ActiveMQ 掌握要求:★ JBpm 工作流引擎 、业务过程管理 搜索关键词: JBpm 掌握要求:★ CAS 单点登录服务器 搜索关键词: SSO CAS 掌握要求:★
  • 18. FitFramework集成开发框架介绍本框架借鉴Spring、Appfuse、SpringSide、Jdon等国内外著名的J2EE应用框架技术,其间还吸收了SAP R/3系统一些设计思想,根据自己所在企业现有J2EE应用开发规范和习惯,结合自己在开发工作过程中摸索到的技巧和经验, 采用领域驱动模型设计思想,逐步形成一套基于Struts+Spring+Hibernate开源技术的快速高效集成开发框架。 目前已基本达到只需编写Domain对象和填写Xdoclet标记,然后调用框架的相关ANT命令,借助Xdoclet生成所有的框架代码、配置文件和页面文件,无需编写一行Java代码即可实现对象的分页查询和所有CRUD操作,达到快速高效开发的效果;同时框架还完整实现了灵活的权限控制、用户管理、消息管理、附件管理、缓存管理、系统监测等系统标准功能,可以在框架的平台基础之上快速搭建业务应用系统。
  • 19. 工程结构源文件目录: src:所有框架和应用的源文件目录 resources:放置所有的配置文件 test:所有测试文件目录 文件目录: doc:放置一些项目相关文档 lib:放置框架层面使用的JAR包 out:放置一些输出文件,如模型图 sso:放置SSO CAS WEB应用 uml:放置相关UML模型文件 webapp:WEB应用根目录 xdoclet:xdoclet模板和生成临时文件 工程Build文件: build-deploy.xml:部署定义 build-share.xml:核心脚本定义 build-properties.xml:属性定义 build-core.xml:核心模块定义
  • 20. src核心结构简介com.changhong.fw包下面放置所有与框架层相关源文件 commons.base:核心接口和基类 BaseHibernateDao持久层超类 BaseSpringManager业务层超类 StrutsEntityAction视图层超类 BaseStandardEditableEntity领域对象超类 commons.exception:核心异常定义 commons.support:审计和分页实现 core.utils:核心帮助类 web.filter:主要过滤器 web.listener:监听器 web.taglibs:自定义标签库 module:核心模块实现代码
  • 21. resources核心配置简介该目录放置Struts、Spring、Hibernate及其他三方组件等的配置文件 conf:常用第三方组件配置文件 context:Spring Acegi权限相关配置文件 context.extras:Spring组件配置文件 context.generate:框架生成的配置文件 context.production:产品模式的配置 context.test:测试模式的配置 freemaker:模板引擎文件 hbm.generate.core:Hibernate生成文件 i18n:国际化资源文件 cas.properties:CAS服务参数配置 hibernate.properties:Hibernate配置 jdbc.properties:数据库连接参数配置 log4j.xml:Log4j日志系统配置 mail.properties:邮件服务参数配置 r3.properties:r3连接参数配置
  • 22. webapp目录结构简介该目录即为最终发布WEB应用程序,以目录或打包方式部署到应用服务器 common:公用的include调用页面 components:放置常用三方组件,例如日历、在线编辑器等 core:核心模块页面 decorators:Sitemesh装饰器模板页面 errors:常用错误显示页面 images:图片 login:登录界面 nav:系统框架主界面 pub:不进行权限检查的公共页面,包括自助注册、找回密码等 scripts:JS脚本目录 styles:CSS样式表目录 templates:Struts-Menu组件的模板 wecontent:Birt报表目录
  • 23. WEB-INF目录结构介绍该目录WEB应用的核心目录 conf.generate:自动生成的Struts配置文件 conf.extras:自定义的Struts配置文件 extras:放置一些额外的三方组件 lib:应用LIB目录 tld:放置应用的标签定义文件 主要配置文件 decorators.xml:sitemesh装饰器定义 dwr.xml:AJAX DWR配置文件 menu-config.xml:Struts-Menu配置文件 sitemesh.xml: sitemesh核心配置文件 struts-config.xml:struts核心配置文件 validator-rules.xml:表单验证规则定义 web.xml:WEB核心配置文件
  • 24. 常用ANT命令简介本框架大量采用XDoclet和ANT实现代码和配置文件生成 ant视图的显示:在Eclipse中选择菜单window->show view->others->ant->ant 把工程中的build-core.xml鼠标拖入ANT视图 主要命令介绍: clean:清除自动生成的配置文件 compile:编译模块 javadoc:生成java文档(未完整实现) tomcat-local-deploy-explore: 将应用部署到本地Tomcat,需要配置Tomcat参数 xdoclet-domain-hbm: 通过域对象的Hibernate标记生成Hibernate配置文件 xdcolet-domain-java: 生成DAO、Manager、Action、Test框架源文件 xdoclet-generate-jsp: 生成域对象对应的编辑和分页查询框架JSP页面 xdoclet-spring-context: 生成DAO、Manager、Action层的Spring配置文件 xdoclet-webdoclet-struts: 生成Struts配置文件和表单验证配置文件 xdoclet-all: 顺序调用以上几个XDoclet命令,用于模块初始化
  • 25. 核心功能菜单用户管理 公司管理 群组管理 人员管理 安全管理 资源管理 权限管理 角色管理全局管理 参数配置 缓存管理 切换用户 附件管理 菜单配置 消息管理 公共消息 收到消息 发送消息 创建消息系统监测 会话监测 登录用户监测 登录历史记录 对象审计记录 控制面板 信息修改 密码修改 资料下载 个性化定制
  • 26. 权限控制机制使用Spring Acegi安全框架,并进行了增强扩展 完整粒度的权限控制 URL访问控制 页面元素的访问控制 对象方法的访问控制 细粒度的ACL对象访问控制 资源(Resource)->权限(Permission)->角色(Role)->用户(User) 菜单和角色的绑定控制
  • 27. 开发过程-创建新工程拷贝现有Eclipse框架工程 修改工程名字 修改工程文件夹为新工程名字 修改工程下.project文件中projectDescription中的name为新工程名字 Eclipse import最新工程 如果原工程连接CVS,先断开CVS连接 将新工程提交到CVS服务器进行协同开发和版本控制
  • 28. 开发过程-新工程部署build-properties.xml中修改web.name值为项目简写名称 定义TOMCAT_HOME环境变量,指向本地Tomcat安装目录 数据源的配置 resources/context/producttion/applicationContext.xml tomcat配置数据源,修改Tomcat安装目录conf/server.xml,在GlobalNamingResources元素中添加数据源定义 修改web.xml最后数据源定义部分 修改webapp/META-INF/context.xml定义
  • 29. 开发过程-定义模块创建模块Package com.changhong.wms.jit 创建模块Build文件 build-jit.xml 添加Struts配置定义 修改WEB-INF/struts-config.xml,将新模块的验证规则配置文件加入Struts主配置文件 修改WEB-INF/web.xml,将新模块的Struts定义文件添加到Struts映射定义中
  • 30. 开发过程-装饰器定义在WEB-INF/web.xml中添加模块装饰过滤配置定义 在WEB-INF/decorators.xml添加装饰器定义
  • 31. 开发过程-定义域对象(POJO)创建com.changhong.wms.jit.domain 创建class AsnStatus extends BaseStandardEditableEntity 继承超类对象会自动拥有大量框架定义的默认属性 定义Class元数据 对象对应的表定义: table=“JIT_AsnStatus”,数据表名;命名规则:模块名_对象名 对象Form参数定义: name=“asnStatusForm”,Form名称;命名规则:小写打头对象名+Form validate=“true”,是否进行表单自动验证;如果为true,必须定义至少对一个字段的验证规则 小写打头对象名: Java命名规则中类名都是首字母大写,变量名是首字母小写。 小写打头对象名就是直接将类名首字母转换成小写后的称谓。本框架很多地方都要遵循这样对应匹配的关系,才能保证能自动找到相关处理逻辑
  • 32. 开发过程-定义域对象(POJO)定义属性 /方法元数据 映射成数据库字段的属性,在对应的getter方法上添加@hibernate.property 字符串类型要定义length=“长度”,标识字段长度 如果希望数据库字段名和属性名不一致,可以使用cloumn=“字段名” 对于需要进行自动表单验证的属性,在setter方法上添加Validator标记 /** * @struts.validator type="required" * @struts.validator-args arg0resource */
  • 33. 开发过程-生成代码和配置文件调用ANT命令,自动生成所有DAO、Manager、WEB各层框架代码和配置文件 如果需要使用AJAX功能,在WEB-INF/dwr.xml添加业务对象定义
  • 34. 开发过程-JSP页面定制ANT自动生成分页显示和编辑页面的框架代码 在List页面添加查询参数项目和列表显示项目 在Edit页面添加编辑项目
  • 35. 开发过程-List页面定制标准分页显示页面 分为4部分 pageTitle: 标题显示区域 searchDiv: 查询参数区域 operationDiv: 操作按钮和操作结果显示区域 tableDiv: 分页表格数据显示区域
  • 36. 开发过程-List searchDiv 定制查询区域主要放置查询项目,一般分为单一属性查询、时间段查询、下拉框等方式 参数命名规则:“search_”+查询属性名 默认按照字符串like查询 以search_createTime@start-cp_lt-tp_DatePlus为例: search_标示查询项目前缀, createTime@start为查询项目,如果为区间段查询就加一个@及后缀, -cp_lt标识比较类型(可选项目eq-等于 like-通配符 ge-大于等于 le-小于等于 gt-大于 lt-小于), -tp_DatePlus为数据类型(可选项目 String-字符串 Long-长整型 Date-日期 DatePlus-日期加一) 如果需要追加对于记录创建时间的区间查询,可直接include公共页面
  • 37. 开发过程-List operationDiv定制如果需要对该对象进行增删操作,则include fullOperation.jsp 如果只做数据显示,不做增删操作,则inlude normalOperation.jsp 如果需要添加额外添加操作按钮,则在operations span区域添加
  • 38. 开发过程-List tableDiv定制ec:exportXls 定义导出Excel或其他类型文件,如果无须提供导出,直接删除该元素 include standardSelectOperationForTable.jsp,产生默认的序号和复选框,如果要求不提供复选框,可直接include standardListOperationForTable.jsp ec:column定义需要显示的列,常用属性如下: property:POJO对象中的属性 titile:该列显示的标题 sortable=false:标识无需为该列产生排序链接,默认值是true cell:定义该单元格是什么类型,date、currency等 format:单元格数据显示格式,一般和cell配合使用 include standardEntityOperationForTable.jsp,产生默认的编辑按钮。如果不进行修改,则取消该元素
  • 39. 开发过程-Edit定制标题区域 消息区域 表单区域 添加需要修改的项目 定义AJAX验证 产生编辑提交按钮 引入标准Struts表单验证
  • 40. 开发过程-权限、菜单的配置在安全管理-资源分类中添加当前模块分类 添加资源,如果这个资源会具体反映到一个菜单项目,则选上关联菜单 添加权限,并与相关资源关联 权限代码必须以AUTH_开头 添加角色,并与相关权限关联 角色代码必须以ROLE_开头 添加用户,并与相关角色关联