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真实体验相关推荐

  1. 记录您的里程和社区运行情况:Java EE 7真实体验

    miles2run.org是跟踪跑步活动并与亲朋好友共享的简便方法. 可以创建然后跟踪基于天或基于距离的目标. 它还允许创建社区运行目标,并使多个跑步者参与并跟踪他们朝着该目标的活动. 您也可以找出本 ...

  2. java学习中,字符串使用(比较、构造方法)(java 学习中的小记录)

    java学习中,字符串使用(比较.构造方法)(java 学习中的小记录)作者:王可利(Star·星星) String的使用 1.在内存中是如何保存字符串. == :比较的是地址(引用数据类型) equ ...

  3. Java学习之路3——方法定义、调用【重拾Java】

    Java学习之路3--方法定义.调用[重拾Java] 方法定义 为什么要写方法 方法完整的定义形式.调用 方法定义的格式 修饰符 返回值类型 返回值 调用格式 方法重载 方法定义 为什么要写方法 对于 ...

  4. 初学者java学习计划_初学者:计划在Windows 7 Media Center中录制直播电视的时间

    初学者java学习计划 If you're a new user to Windows 7 Media Center you know it can act as a DVR and pause or ...

  5. JAVA学习笔记_银行账户系统

    大家好,我是一枚JAVA学习的小白,初次来到SCND还请多多指教!!!! 最近上编程课学习都挺晚的,没时间逛论坛了,今天休息正好也赶上线上,所以来发点学习笔记,一起讨论学习.(看我这个标点符号就知道我 ...

  6. java学习出师_没基础怎么学好java?120天出师

    有人说java比较容易入门,也有人说Java比较难学,这要根据个人的基础而定.但总体来说,java有着先天的优势,那Java有哪些优势呢?我们来具体看看吧. Java的优势 没基础怎么学java?当下 ...

  7. java jps监控_记录java虚拟机性能监控工具(jps与jstat)的使用

    (1) jps(Java Virtual Machine Process Status) 虚拟机进程状况工具; 1.1 显示运行的Java应该程序的进程ID jps -q #86589 #77567 ...

  8. Java学习路线导航,带你入门到精通(附Java全套学习资源)

    最近也有很多小伙伴来向我请教,他们大多是一些Java刚入门的新手,还不了解Java这个行业,也不知道Java零基础该从何学起,开始的时候非常迷茫,所以今天写了这篇文章,具体来说说Java的学习路线. ...

  9. java对象头_我的并发编程(二):java对象头以及synchronized升级过程

    一.概述 研究java对象头的目的是详细分析Java的synchronized锁的升级过程,因为synchronized在锁升级的时候,就是依赖对象头的信息来决定的.本博文针对64位的操作系统来对Ja ...

最新文章

  1. Facebook再曝数据丑闻删除应用数据仍会被泄漏
  2. 手把手教你使用Dygraphs可视化时间序列数据(附代码、链接)
  3. 索引贴——移动开发(.Net CF 停止更新)
  4. python调用函数出现未定义_python – 为什么函数参数之外的“self”会给出“未定义”的错误?...
  5. sicily 1024 Magic Island
  6. poj3320Jessica's Reading Problem—尺取法(java)
  7. Blockchain Patent Players and domain
  8. Anaconda——安装与添加 Anaconda Python 免费仓库
  9. springboot 获取客户端ip_JAVA如何获取客户端IP地址和MAC地址
  10. 寄存器地址和内存地址_通俗易懂和你聊聊寄存器那些事(精美图文)
  11. WeLink的杀手锏和远程办公软件的另一面
  12. elementary os java,吐槽ELEMENTARY OS系统/ELEMENTARY OS系列文章汇总
  13. ajax注册判断怎么写,ajax之判断用户名是否被注册
  14. AGV机器人(1)基于视觉避障的理论基础
  15. 我为什么要使用Webpack?
  16. Nacos集群(二)阿里自研弱一致性Distro协议核心实现
  17. css实现圆球旋像水波波动_这49个CSS知识点你未必会知道
  18. 基于ESP8266芯片的实时温湿度传感器
  19. Origin 数据渐变色
  20. 偷得浮生半日闲:三层神经网络的python实现

热门文章

  1. P1197-星球大战【并查集,图论】
  2. 信息学奥赛一本通1349-最优布线问题
  3. Maven的pom.xml文件详解------Environment Settings
  4. 什么是Spring Boot?
  5. java嵌套类与内部类
  6. 内存不足The following exception is caused by a lack of memory or swap, or not having swap
  7. 对于自绝对父相的理解
  8. publiccms中将推荐页的内容显示在页面片段中
  9. 来自一位家长的肺腑之言,句句在理!!!
  10. 《四世同堂》金句摘抄(九)