本課程的學(xué)習(xí)目的和要求:
?
- 通過學(xué)習(xí)教程,學(xué)員能夠掌握大中型系統(tǒng)的設(shè)計開發(fā)過程,能獨(dú)立實(shí)現(xiàn)系統(tǒng)分析、系統(tǒng)設(shè)計、編碼開發(fā)的完整的軟件開發(fā)流程。
- 能夠熟練掌握J(rèn)AVA多線程程序開發(fā),熟練使用java concurrent類庫。
- 能夠掌握J(rèn)AVA SOCKET服務(wù)端、客戶端編程。
- 能夠掌握數(shù)據(jù)庫連接池技術(shù),借助數(shù)據(jù)庫連接池提升系統(tǒng)性能。
- 能熟練掌握log4j在商用系統(tǒng)中的使用,采用log4j記錄系統(tǒng)日志。
- 能熟練掌握采用ant編譯構(gòu)建系統(tǒng),熟悉ant腳本的編寫
- 能熟練掌握采用poi讀寫excel文檔的方法
- 能熟練掌握采用pdfbox解析pdf、word等格式文檔的方法
- 能熟悉用JAVA開發(fā)大并發(fā)、高性能系統(tǒng)的基本思路和方法
?
課程描述:
本課程是一套采用JAVA開發(fā)大并發(fā)、高性能服務(wù)器系統(tǒng)的視頻教程,此教程從頭到尾采用高性能基金持倉分析服務(wù)器項(xiàng)目為案例,覆蓋系統(tǒng)分析設(shè)計、開發(fā)環(huán)境構(gòu)建、程序編碼調(diào)試等實(shí)際項(xiàng)目開發(fā)中的各個環(huán)節(jié),完整展現(xiàn)實(shí)際商業(yè)項(xiàng)目開發(fā)的完整過程。?
此教程中包含了JAVA服務(wù)器開發(fā)的各種常用技術(shù),如多線程開發(fā)、socket編程、數(shù)據(jù)庫連接池技術(shù)、log4j日志記錄組件的使用、ant編譯系統(tǒng)、poi組件的使用、pdfbox組件的使用等等,通過此項(xiàng)目的學(xué)習(xí),學(xué)員能夠掌握熟知JAVA服務(wù)器編程的思想,熟悉JAVA服務(wù)器編程技術(shù),并體驗(yàn)各種技術(shù)在實(shí)際商業(yè)項(xiàng)目開發(fā)中的使用方法。進(jìn)一步提升學(xué)員的編程能力,開拓學(xué)員技術(shù)視野,提升項(xiàng)目開發(fā)經(jīng)驗(yàn)。
?
講課風(fēng)格說明:
?
- 本教程主要是以實(shí)際案例開發(fā)的形式講解。
- 在每節(jié)開始之前先簡單回顧上一節(jié)所講的內(nèi)容,并對本節(jié)所講的內(nèi)容通過PPT先進(jìn)性講解,主要講解技術(shù)要點(diǎn),模塊實(shí)現(xiàn)思路等內(nèi)容。然后通過代碼演示給予實(shí)現(xiàn)。
- 在講解過程中涉及到項(xiàng)目的實(shí)現(xiàn),對項(xiàng)目實(shí)現(xiàn)如果涉及到重復(fù)知識點(diǎn)的部分,會給學(xué)員布置一些作業(yè),學(xué)員需要下來自行完成。
- 在講解過程中針對常見的異常,筆者會故意設(shè)置一些小異常,需要通過調(diào)試讓學(xué)員學(xué)會如果分析問題和解決問題,提升軟件開發(fā)技能。
- 本教程,主要分為2部分實(shí)現(xiàn)。基金持倉數(shù)據(jù)管理部分、高性能socket接口服務(wù)器部分。
?
教學(xué)目標(biāo):
?
學(xué)員在學(xué)完本課程后,能夠?qū)W習(xí)到多線程開發(fā)、socket編程、數(shù)據(jù)庫連接池技術(shù)、log4j日志記錄組件的使用、ant編譯系統(tǒng)、poi組件的使用、pdfbox組件的使用等等,并掌握各種技術(shù)在實(shí)際項(xiàng)目開發(fā)中的使用技巧,靈活運(yùn)用在以后的工作、學(xué)習(xí)中:
- 通過學(xué)習(xí)教程,學(xué)員能夠掌握大中型系統(tǒng)的設(shè)計開發(fā)過程,能獨(dú)立實(shí)現(xiàn)系統(tǒng)分析、系統(tǒng)設(shè)計、編碼開發(fā)的完整的軟件開發(fā)流程。
- 能夠熟練掌握J(rèn)AVA多線程程序開發(fā),熟練使用java concurrent類庫。
- 能夠掌握J(rèn)AVA SOCKET服務(wù)端、客戶端編程。
- 能夠掌握數(shù)據(jù)庫連接池技術(shù),借助數(shù)據(jù)庫連接池提升系統(tǒng)性能。
- 能熟練掌握log4j在商用系統(tǒng)中的使用,采用log4j記錄系統(tǒng)日志。
- 能熟練掌握采用ant編譯構(gòu)建系統(tǒng),熟悉ant腳本的編寫
- 能熟練掌握采用poi讀寫excel文檔的方法
- 能熟練掌握采用pdfbox解析pdf、word等格式文檔的方法
- 能熟悉用JAVA開發(fā)大并發(fā)、高性能系統(tǒng)的基本思路和方法
?
課程內(nèi)容安排:
?
第一講:高性能基金持倉分析服務(wù)器項(xiàng)目背景、業(yè)務(wù)知識、系統(tǒng)架構(gòu):
??????????????? 講述本項(xiàng)目的系統(tǒng)架構(gòu),基金持倉分析的相關(guān)業(yè)務(wù)知識,通過本講學(xué)習(xí),學(xué)員可以了解項(xiàng)目的背景和基礎(chǔ)知識,并熟悉系統(tǒng)的技術(shù)架構(gòu),為后續(xù)學(xué)習(xí)打下良好基礎(chǔ))
第二講:開發(fā)環(huán)境搭建(系統(tǒng)基礎(chǔ)開發(fā)環(huán)境由eclipse+xampp+jdk構(gòu)成):
?????????????? 本講講解如何用eclipse和xampp、jdk搭建系統(tǒng)的開發(fā)環(huán)境,并引入項(xiàng)目使用的第三方包,介紹SQLyogEnt及xampp的使用。通過本講學(xué)習(xí),學(xué)員應(yīng)能學(xué)會如何從無到有搭建系統(tǒng)的開發(fā)環(huán)境)
第三講:項(xiàng)目編譯系統(tǒng)構(gòu)建,ant腳本編寫(項(xiàng)目的編譯系統(tǒng)采用ant來實(shí)現(xiàn)):
?????????????? 本講講述如何采用ant來構(gòu)建項(xiàng)目編譯系統(tǒng),如何編寫ant腳本,如何劃分項(xiàng)目目錄;講解內(nèi)容具有通用性,可直接使用于其它項(xiàng)目。通過本講學(xué)習(xí),學(xué)員應(yīng)能學(xué)會ant的配置使用,ant腳本的基本語法,應(yīng)會獨(dú)立編寫一個項(xiàng)目的ant腳本,具有構(gòu)建一個項(xiàng)目的編譯系統(tǒng)的能力。
第四講:數(shù)據(jù)庫設(shè)計(mysql數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計):
????????????? 本講講解系統(tǒng)的數(shù)據(jù)庫總體設(shè)計思路,以及系統(tǒng)的表結(jié)構(gòu)詳細(xì)設(shè)計,通過本講學(xué)習(xí),學(xué)員應(yīng)熟悉系統(tǒng)的數(shù)據(jù)庫表設(shè)計的思路,熟悉表之間的關(guān)聯(lián)關(guān)系,熟悉各張表的字段含義,并學(xué)會如何生成mysql數(shù)據(jù)表。
第五講:數(shù)據(jù)庫連接池封裝1(采用dbcp實(shí)現(xiàn),log4j記日志):
??????????????dbcp及l(fā)og4j都是java開發(fā)中使用非常廣泛的開源組件,本講講述如何基于dbcp編寫一個獨(dú)立的mysql數(shù)據(jù)庫連接池組件,通過數(shù)據(jù)庫連接池的使用提高數(shù)據(jù)庫訪問效率,提升系統(tǒng)的整體性能。該組件具有相對獨(dú)立性,可直接用于其它項(xiàng)目中。
第六講:數(shù)據(jù)庫連接池封裝2:
?????????????? 本講繼續(xù)講解如何編寫配置文件與代碼分離的數(shù)據(jù)庫連接池,同時介紹如何使用log4j記錄日志。學(xué)員應(yīng)跟隨老師一步步編寫代碼,應(yīng)學(xué)會開發(fā)數(shù)據(jù)庫連接池的技巧,學(xué)會采用log4j記錄系統(tǒng)日志的方法,學(xué)會log4j配置文件的配置方法
第七講:數(shù)據(jù)訪問層封裝1(DAO模式封裝):
????????????? 本講講述系統(tǒng)分層原理,代碼包依賴關(guān)系,并基于分層劃分講解DAO、MODEL、VO代碼編寫,DAO層與數(shù)據(jù)庫連接池的調(diào)用關(guān)系
第八講:數(shù)據(jù)訪問層封裝2:
??????????????本講繼續(xù)講解DAO層代碼編寫,通過本講學(xué)習(xí),學(xué)員應(yīng)能理解并熟悉DAO層的作用及代碼模式,應(yīng)能學(xué)會在以后的工作中熟練使用DAO進(jìn)行數(shù)據(jù)庫訪問的封裝。?
?
第九講:數(shù)據(jù)訪問層封裝3(批量增加和查詢) :
???????????? 本講介紹如何采用批處理方式提交數(shù)據(jù),以提高系統(tǒng)的數(shù)據(jù)處理效率;并演示在DAO層中數(shù)據(jù)查詢的代碼編寫模式。
第十講:基金持倉明細(xì)功能開發(fā)1(service層封裝及console主程序編寫)
??????????? :本講介紹業(yè)務(wù)邏輯層(service層)在系統(tǒng)中的位置,并講解如何封裝service層,講解如何開發(fā)管理console主程序。通過本講學(xué)習(xí),學(xué)員應(yīng)理解service層的作用及與DAO層的調(diào)用關(guān)系,應(yīng)學(xué)會service封裝業(yè)務(wù)邏輯的方法
第十一講:基金持倉明細(xì)功能開發(fā)2(jdk集成及系統(tǒng)運(yùn)行腳本編寫):
???????????? 本講除繼續(xù)上一講管理console主程序開發(fā)外,重點(diǎn)講解如何在系統(tǒng)release版本中集成jdk,講解如何編寫系統(tǒng)管理主程序運(yùn)行的run.bat,講解run.bat中jvm參數(shù)的設(shè)置方法。通過本講學(xué)習(xí),學(xué)員可熟悉在實(shí)際項(xiàng)目中如何集成jdk及編寫?yīng)毩⒖蛇\(yùn)行的run.bat,并靈活運(yùn)用與實(shí)際的開發(fā)工作中。
第十二講:基金持倉明細(xì)功能開發(fā)3(用pdfbox和poi解析季報):
??????????? pdfbox和poi組件是java開發(fā)中使用廣泛的開源組件,本講講解使用pdfbox解析基金季報,使用poi解析基金季報。通過本講學(xué)習(xí),學(xué)員應(yīng)能學(xué)會使用Pdfbox和poi解析pdf和xls文檔的通用方法,在實(shí)際工作中靈活運(yùn)用。
第十三講:基金持倉明細(xì)功能開發(fā)4(格式化季報數(shù)據(jù)入庫) :
??????????? 格式化季報從業(yè)務(wù)上講包含本項(xiàng)目最復(fù)雜的業(yè)務(wù)邏輯,本講重點(diǎn)講解格式化季報的業(yè)務(wù)邏輯在service層的封裝方法,異常季報數(shù)據(jù)的處理邏輯。通過本講學(xué)習(xí),學(xué)員應(yīng)學(xué)會在service層中封裝復(fù)雜業(yè)務(wù)邏輯的方法,學(xué)會java通用的文件及目錄操作開發(fā)方法。
第十四講:基金重倉股功能1:
??????????? 基金重倉股往往是投資中黑馬股的大本營,本講講述通過基金季報數(shù)據(jù)挖掘出基金重倉股的功能開發(fā)。
第十五講:基金重倉股功能2:
???????????? 基金重倉股在系統(tǒng)中可導(dǎo)出成為xls文件,本講講述通過poi導(dǎo)出xls文件的方法,并講解在servce層中調(diào)用多個DAO的代碼編寫模式,在servcie層中進(jìn)行平級調(diào)用的方法
第十六講:基金公司股票持倉總計功能1(統(tǒng)計基金公司持倉):
?????? ?????基金公司持倉情況統(tǒng)計對股票投資實(shí)戰(zhàn)具有重要指導(dǎo)意義,可看出基金公司的總體投資方向。本講講解該功能的需求、設(shè)計及開發(fā)方法
第十七講:基金公司股票持倉總計功能2:
???????? ??本講繼續(xù)講解該功能的代碼實(shí)現(xiàn)
第十八講:股票增減倉明細(xì)功能1:
??????????? 股票投資過程中,掌握基金對股票的增減倉情況,具有重要的投資指導(dǎo)意義,可以明確當(dāng)前熱門投資方向 ,回避投資風(fēng)險。本講講解該功能的需求、設(shè)計及代碼開發(fā)實(shí)現(xiàn),介紹如何通過系統(tǒng)獲取準(zhǔn)確的股票增減倉數(shù)據(jù)。
第十九講:股票增減倉明細(xì)功能2:
???????????? 本講繼續(xù)講解該功能的代碼實(shí)現(xiàn)
第二十講:基金公司股票增減倉明細(xì)功能:
???????????? 股票投資中,掌握基金公司本季度對股票的增減倉情況,可以準(zhǔn)確識別基金公司的抱團(tuán)行為,分析基金公司投資方向變化。本講講解如何通過系統(tǒng)來挖掘這種重要數(shù)據(jù),講解該功能的需求、設(shè)計及代碼開發(fā)實(shí)現(xiàn)
第二十一講:股票持倉查詢功能開發(fā):
?????????????????查詢某只股票某一季度被基金持有多少,是最常用的功能,本講介紹該功能的需求、設(shè)計及代碼實(shí)現(xiàn)
第二十二講:-數(shù)據(jù)清理功能開發(fā):
???????????????? 數(shù)據(jù)清理功能是系統(tǒng)提供的一個維護(hù)功能,本講講解該功能的需求、設(shè)計及代碼實(shí)現(xiàn)
第二十三講:java socket編程基礎(chǔ):
???????????????? 本講講解java socket編程所涉及的基礎(chǔ)知識,socket編程原理,常見編程方法等。通過本講學(xué)習(xí),學(xué)員應(yīng)了解java socket編程的基本概念及常見模式,為后續(xù)socket server/socket client的開發(fā)打下基礎(chǔ)
第二十四講:Java 多線程編程基礎(chǔ):
?????????????????本講講解java 多線程編程的發(fā)展歷程,編程原理,重點(diǎn)講解JUC的使用。通過本講學(xué)習(xí),學(xué)員應(yīng)了解java 多線程編程的常見方法,為后續(xù)項(xiàng)目多線程開發(fā)的打下基礎(chǔ)
第二十五講:基金持倉服務(wù)器socket消息封裝:
????????????????? 前端業(yè)務(wù)系統(tǒng)與本服務(wù)器間通過socket消息進(jìn)行通訊,基本模式為comand模式,本講講解業(yè)務(wù)系統(tǒng)與本服務(wù)器之間的socket消息封裝,介紹了常見的用java對象進(jìn)行socket消息封裝的模式
第二十六講:單線程基金持倉socket server開發(fā):
??????????????????本講講解直接使用java thread開發(fā)一個socket服務(wù)器的方法,講解socket server接收到前端業(yè)務(wù)系統(tǒng)socket消息后,如何通過命令模式調(diào)用service層獲取結(jié)果。
第二十七講:多線程基金持倉socket server開發(fā):
???????????????? 本講講解使用JUC通過線程池開發(fā)實(shí)現(xiàn)多線程socket服務(wù)器的方法,通過采用JUC,服務(wù)器可承受前端業(yè)務(wù)系統(tǒng)大并發(fā)請求調(diào)用。
第二十八講:socket客戶端模擬器開發(fā)1:
?????????????????本講講解前端業(yè)務(wù)系統(tǒng)請求調(diào)用模擬器的開發(fā)實(shí)現(xiàn),采用模擬器可直接與基金持倉服務(wù)器進(jìn)行系統(tǒng)聯(lián)調(diào)、壓力測試。講解模擬器設(shè)計思路,模擬器代理編寫
第二十九講:socket客戶端模擬器開發(fā)2:
????????????????? 講解通過線程池實(shí)現(xiàn)多線程客戶端模擬器的開發(fā),通過多線程模擬器可模擬多客戶端同時發(fā)起請求,調(diào)用多線程基金持倉服務(wù)器,可直接用于聯(lián)調(diào)及壓力測試
第三十講:項(xiàng)目開發(fā)總結(jié):
???????????????? 一個系統(tǒng)不是孤立存在的,在系統(tǒng)使用過程中會不斷發(fā)展。本講總結(jié)項(xiàng)目開發(fā)過程中用到的相關(guān)技術(shù)、開發(fā)方法、系統(tǒng)優(yōu)點(diǎn)、缺點(diǎn),及可改進(jìn)處,并對系統(tǒng)后續(xù)發(fā)展進(jìn)行展望。
?
基金持倉分析服務(wù)器架構(gòu)圖:
