本课程的学习目的和要求:
- 通过学习教程,学员能够掌握大中型系统的设计开发过程,能独立实现系统分析、系统设计、编码开发的完整的软件开发流程。
- 能够熟练掌握JAVA多线程程序开发,熟练使用java concurrent类库。
- 能够掌握JAVA SOCKET服务端、客户端编程。
- 能够掌握数据库连接池技术,借助数据库连接池提升系统性能。
- 能熟练掌握log4j在商用系统中的使用,采用log4j记录系统日志。
- 能熟练掌握采用ant编译构建系统,熟悉ant脚本的编写
- 能熟练掌握采用poi读写excel文档的方法
- 能熟练掌握采用pdfbox解析pdf、word等格式文档的方法
- 能熟悉用JAVA开发大并发、高性能系统的基本思路和方法
课程描述:
本课程是一套采用JAVA开发大并发、高性能服务器系统的视频教程,此教程从头到尾采用高性能基金持仓分析服务器项目为案例,覆盖系统分析设计、开发环境构建、程序编码调试等实际项目开发中的各个环节,完整展现实际商业项目开发的完整过程。
此教程中包含了JAVA服务器开发的各种常用技术,如多线程开发、socket编程、数据库连接池技术、log4j日志记录组件的使用、ant编译系统、poi组件的使用、pdfbox组件的使用等等,通过此项目的学习,学员能够掌握熟知JAVA服务器编程的思想,熟悉JAVA服务器编程技术,并体验各种技术在实际商业项目开发中的使用方法。进一步提升学员的编程能力,开拓学员技术视野,提升项目开发经验。
讲课风格说明:
- 本教程主要是以实际案例开发的形式讲解。
- 在每节开始之前先简单回顾上一节所讲的内容,并对本节所讲的内容通过PPT先进性讲解,主要讲解技术要点,模块实现思路等内容。然后通过代码演示给予实现。
- 在讲解过程中涉及到项目的实现,对项目实现如果涉及到重复知识点的部分,会给学员布置一些作业,学员需要下来自行完成。
- 在讲解过程中针对常见的异常,笔者会故意设置一些小异常,需要通过调试让学员学会如果分析问题和解决问题,提升软件开发技能。
- 本教程,主要分为2部分实现。基金持仓数据管理部分、高性能socket接口服务器部分。
教学目标:
学员在学完本课程后,能够学习到多线程开发、socket编程、数据库连接池技术、log4j日志记录组件的使用、ant编译系统、poi组件的使用、pdfbox组件的使用等等,并掌握各种技术在实际项目开发中的使用技巧,灵活运用在以后的工作、学习中:
- 通过学习教程,学员能够掌握大中型系统的设计开发过程,能独立实现系统分析、系统设计、编码开发的完整的软件开发流程。
- 能够熟练掌握JAVA多线程程序开发,熟练使用java concurrent类库。
- 能够掌握JAVA SOCKET服务端、客户端编程。
- 能够掌握数据库连接池技术,借助数据库连接池提升系统性能。
- 能熟练掌握log4j在商用系统中的使用,采用log4j记录系统日志。
- 能熟练掌握采用ant编译构建系统,熟悉ant脚本的编写
- 能熟练掌握采用poi读写excel文档的方法
- 能熟练掌握采用pdfbox解析pdf、word等格式文档的方法
- 能熟悉用JAVA开发大并发、高性能系统的基本思路和方法
课程内容安排:
第一讲:高性能基金持仓分析服务器项目背景、业务知识、系统架构:
讲述本项目的系统架构,基金持仓分析的相关业务知识,通过本讲学习,学员可以了解项目的背景和基础知识,并熟悉系统的技术架构,为后续学习打下良好基础)
第二讲:开发环境搭建(系统基础开发环境由eclipse+xampp+jdk构成):
本讲讲解如何用eclipse和xampp、jdk搭建系统的开发环境,并引入项目使用的第三方包,介绍SQLyogEnt及xampp的使用。通过本讲学习,学员应能学会如何从无到有搭建系统的开发环境)
第三讲:项目编译系统构建,ant脚本编写(项目的编译系统采用ant来实现):
本讲讲述如何采用ant来构建项目编译系统,如何编写ant脚本,如何划分项目目录;讲解内容具有通用性,可直接使用于其它项目。通过本讲学习,学员应能学会ant的配置使用,ant脚本的基本语法,应会独立编写一个项目的ant脚本,具有构建一个项目的编译系统的能力。
第四讲:数据库设计(mysql数据库表结构设计):
本讲讲解系统的数据库总体设计思路,以及系统的表结构详细设计,通过本讲学习,学员应熟悉系统的数据库表设计的思路,熟悉表之间的关联关系,熟悉各张表的字段含义,并学会如何生成mysql数据表。
第五讲:数据库连接池封装1(采用dbcp实现,log4j记日志):
dbcp及log4j都是java开发中使用非常广泛的开源组件,本讲讲述如何基于dbcp编写一个独立的mysql数据库连接池组件,通过数据库连接池的使用提高数据库访问效率,提升系统的整体性能。该组件具有相对独立性,可直接用于其它项目中。
第六讲:数据库连接池封装2:
本讲继续讲解如何编写配置文件与代码分离的数据库连接池,同时介绍如何使用log4j记录日志。学员应跟随老师一步步编写代码,应学会开发数据库连接池的技巧,学会采用log4j记录系统日志的方法,学会log4j配置文件的配置方法
第七讲:数据访问层封装1(DAO模式封装):
本讲讲述系统分层原理,代码包依赖关系,并基于分层划分讲解DAO、MODEL、VO代码编写,DAO层与数据库连接池的调用关系
第八讲:数据访问层封装2:
本讲继续讲解DAO层代码编写,通过本讲学习,学员应能理解并熟悉DAO层的作用及代码模式,应能学会在以后的工作中熟练使用DAO进行数据库访问的封装。
第九讲:数据访问层封装3(批量增加和查询) :
本讲介绍如何采用批处理方式提交数据,以提高系统的数据处理效率;并演示在DAO层中数据查询的代码编写模式。
第十讲:基金持仓明细功能开发1(service层封装及console主程序编写)
:本讲介绍业务逻辑层(service层)在系统中的位置,并讲解如何封装service层,讲解如何开发管理console主程序。通过本讲学习,学员应理解service层的作用及与DAO层的调用关系,应学会service封装业务逻辑的方法
第十一讲:基金持仓明细功能开发2(jdk集成及系统运行脚本编写):
本讲除继续上一讲管理console主程序开发外,重点讲解如何在系统release版本中集成jdk,讲解如何编写系统管理主程序运行的run.bat,讲解run.bat中jvm参数的设置方法。通过本讲学习,学员可熟悉在实际项目中如何集成jdk及编写独立可运行的run.bat,并灵活运用与实际的开发工作中。
第十二讲:基金持仓明细功能开发3(用pdfbox和poi解析季报):
pdfbox和poi组件是java开发中使用广泛的开源组件,本讲讲解使用pdfbox解析基金季报,使用poi解析基金季报。通过本讲学习,学员应能学会使用Pdfbox和poi解析pdf和xls文档的通用方法,在实际工作中灵活运用。
第十三讲:基金持仓明细功能开发4(格式化季报数据入库) :
格式化季报从业务上讲包含本项目最复杂的业务逻辑,本讲重点讲解格式化季报的业务逻辑在service层的封装方法,异常季报数据的处理逻辑。通过本讲学习,学员应学会在service层中封装复杂业务逻辑的方法,学会java通用的文件及目录操作开发方法。
第十四讲:基金重仓股功能1:
基金重仓股往往是投资中黑马股的大本营,本讲讲述通过基金季报数据挖掘出基金重仓股的功能开发。
第十五讲:基金重仓股功能2:
基金重仓股在系统中可导出成为xls文件,本讲讲述通过poi导出xls文件的方法,并讲解在servce层中调用多个DAO的代码编写模式,在servcie层中进行平级调用的方法
第十六讲:基金公司股票持仓总计功能1(统计基金公司持仓):
基金公司持仓情况统计对股票投资实战具有重要指导意义,可看出基金公司的总体投资方向。本讲讲解该功能的需求、设计及开发方法
第十七讲:基金公司股票持仓总计功能2:
本讲继续讲解该功能的代码实现
第十八讲:股票增减仓明细功能1:
股票投资过程中,掌握基金对股票的增减仓情况,具有重要的投资指导意义,可以明确当前热门投资方向 ,回避投资风险。本讲讲解该功能的需求、设计及代码开发实现,介绍如何通过系统获取准确的股票增减仓数据。
第十九讲:股票增减仓明细功能2:
本讲继续讲解该功能的代码实现
第二十讲:基金公司股票增减仓明细功能:
股票投资中,掌握基金公司本季度对股票的增减仓情况,可以准确识别基金公司的抱团行为,分析基金公司投资方向变化。本讲讲解如何通过系统来挖掘这种重要数据,讲解该功能的需求、设计及代码开发实现
第二十一讲:股票持仓查询功能开发:
查询某只股票某一季度被基金持有多少,是最常用的功能,本讲介绍该功能的需求、设计及代码实现
第二十二讲:-数据清理功能开发:
数据清理功能是系统提供的一个维护功能,本讲讲解该功能的需求、设计及代码实现
第二十三讲:java socket编程基础:
本讲讲解java socket编程所涉及的基础知识,socket编程原理,常见编程方法等。通过本讲学习,学员应了解java socket编程的基本概念及常见模式,为后续socket server/socket client的开发打下基础
第二十四讲:Java 多线程编程基础:
本讲讲解java 多线程编程的发展历程,编程原理,重点讲解JUC的使用。通过本讲学习,学员应了解java 多线程编程的常见方法,为后续项目多线程开发的打下基础
第二十五讲:基金持仓服务器socket消息封装:
前端业务系统与本服务器间通过socket消息进行通讯,基本模式为comand模式,本讲讲解业务系统与本服务器之间的socket消息封装,介绍了常见的用java对象进行socket消息封装的模式
第二十六讲:单线程基金持仓socket server开发:
本讲讲解直接使用java thread开发一个socket服务器的方法,讲解socket server接收到前端业务系统socket消息后,如何通过命令模式调用service层获取结果。
第二十七讲:多线程基金持仓socket server开发:
本讲讲解使用JUC通过线程池开发实现多线程socket服务器的方法,通过采用JUC,服务器可承受前端业务系统大并发请求调用。
第二十八讲:socket客户端模拟器开发1:
本讲讲解前端业务系统请求调用模拟器的开发实现,采用模拟器可直接与基金持仓服务器进行系统联调、压力测试。讲解模拟器设计思路,模拟器代理编写
第二十九讲:socket客户端模拟器开发2:
讲解通过线程池实现多线程客户端模拟器的开发,通过多线程模拟器可模拟多客户端同时发起请求,调用多线程基金持仓服务器,可直接用于联调及压力测试
第三十讲:项目开发总结:
一个系统不是孤立存在的,在系统使用过程中会不断发展。本讲总结项目开发过程中用到的相关技术、开发方法、系统优点、缺点,及可改进处,并对系统后续发展进行展望。
基金持仓分析服务器架构图: