本課程的學習目的和要求:
?
- 通過學習教程,學員能夠掌握大中型系統的設計開發過程,能獨立實現系統分析、系統設計、編碼開發的完整的軟件開發流程。
- 能夠熟練掌握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:
????????????????? 講解通過線程池實現多線程客戶端模擬器的開發,通過多線程模擬器可模擬多客戶端同時發起請求,調用多線程基金持倉服務器,可直接用于聯調及壓力測試
第三十講:項目開發總結:
???????????????? 一個系統不是孤立存在的,在系統使用過程中會不斷發展。本講總結項目開發過程中用到的相關技術、開發方法、系統優點、缺點,及可改進處,并對系統后續發展進行展望。
?
基金持倉分析服務器架構圖:
