java学习里程碑_记录您的里程和社区运行情况:Java EE 7真实体验
java學習里程碑
miles2run.org是跟蹤跑步活動并與親朋好友共享的簡便方法。 可以創建然后跟蹤基于天或基于距離的目標。 它還允許創建社區運行目標,并使多個跑步者參與并跟蹤他們朝著該目標的活動。 您還可以找出本地跑步者并與他們聯系。
該項目已開始,以幫助跟蹤#JavaOneStreak的運行活動。 目標是每天一直行駛至少一英里,直到JavaOne為止,并使用此網站跟蹤運行情況。 有大量復雜的應用程序和網站,可讓您跟蹤跑步活動。 它們中的大多數都與您的GPS手表,手機GPS和其他精美功能集成在一起。 其中一些甚至允許創建組,但是它們都不基于Java!
該應用程序以網站的形式托管,并使用HTML5和Java EE 7構建。 著陸頁提供了有關跑步者總數,其城市/國家/地區,英里和迄今為止記錄的小時數的摘要。
可以在臺式機,平板電腦或手機上查看該網站。 跑步者可以使用常見的社交代理(例如Facebook,Google和Twitter)登錄該網站。
任何機構都可以單擊右上角的“社區運行”,以查看到目前為止已創建的所有組運行 。 這些只能由管理員創建。 JavaOne的團體跑步頁面顯示了有多少跑步者參加了這次跑步及其他統計。
每個跑步者都會看到一個儀表板,顯示他們到目前為止已經跑了多少距離以及總/完成/剩余/缺席天數。
顯示了進度的可視化表示和活動日歷的熱圖:
顯示了幾天的里程折線圖:
然后還顯示了過去幾個月的活動摘要:
跑步者還可以跟隨其他跑步者并跟蹤他們的活動。
這是應用程序的概念圖:
這是該應用程序的技術視圖:
這是技術堆棧的簡要說明:
- 介紹
- JAX-RS呈現的Thymeleaf模板引擎視圖
- 中間層
- @Stateless EJB用于所有事務性JPA交互, @Asynchronous用于將狀態發布到社交網絡
- 后端
- 用于創建EntityManagers和其他配置對象(例如Redis連接池對象或MongoDB配置對象)的CDI生產者。
平臺以外的技術:
- JavaScript
- D3.js和C3.js用于吸引人的圖形
- Google Geocoding API將位置文本轉換為緯度和經度
- Jadira用戶類型 ,用于在UTC中存儲日期
- Joda-Time處理日期
- 使用Thymeleaf代替JavaServer Faces是因為:
- 允許JAX-RS用作MVC框架來呈現服務器端HTML頁面和公開REST服務。
- Redis用于存儲所有計數器,例如跑步者數量,城市,特定于目標的計數器(例如目標覆蓋的總距離等)。為了避免從數據庫中進行大量讀/寫操作,使用了內存數據庫,因此所有讀寫操作非常高效。 Redis計數器是原子的,這意味著沒有與此相關的并發問題。 INCR和INCRBY Redis操作用于更新計數器。
- MongoDB用于位置數據。
工具集
- JDK 8
- 帶有Maven的IntelliJ 13.1
- Wildfly 8.1.0.Final-使用本地WildFly實例完成開發,然后將其推送到OpenShift上的可伸縮WildFly實例進行部署。 HA代理用作負載均衡器。使用OpenShift的優點是應用程序中沒有特定于OpenShift的代碼。 因此,在本地工作的同一應用程序已部署到測試和生產環境。 您只需要使用環境變量來抽象出特定于環境的配置。
- Github
計劃的更新
- 使用Jenkins進行持續集成并管理部署
- JPA 2.1轉換器而不是Jadira
- Keycloak代替本地社交經紀人
- 開源應用程序
Java EE 8的愿望清單
- 與OAuth提供程序集成
- 真正的MVC框架,支持可插拔模板引擎
- 無縫使用NoSQL數據庫
立即下載WildFly 8.1 ,通過閱讀/嘗試Java EE 7示例學習該技術,瀏覽Java EE 7資源 。
或者,如果您想站在最前沿,請查看WildFly 9.0 。
非常感謝Shekhar Gulati( @shekhargulati )編寫了應用程序并提供了所有答案!
翻譯自: https://www.javacodegeeks.com/2014/09/log-your-miles-and-community-runs-java-ee-7-real-world-experience.html
java學習里程碑
總結
以上是生活随笔為你收集整理的java学习里程碑_记录您的里程和社区运行情况:Java EE 7真实体验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 改善“GTA+ 订阅量”,R 星宣布相关
- 下一篇: java美元兑换,(Java实现) 美元