java学习里程碑_记录您的里程和社区运行情况:Java EE 7真实体验

java学习里程碑

miles2run-徽标

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

该项目已开始,以帮助跟踪#JavaOneStreak的运行活动。 目标是每天一直行驶至少一英里,直到JavaOne为止,并使用此网站跟踪运行情况。 有大量复杂的应用程序和网站,可让您跟踪跑步活动。 它们中的大多数都与您的GPS手表,手机GPS和其他精美功能集成在一起。 其中一些甚至允许创建组,但是它们都不基于Java!

该应用程序以网站的形式托管,并使用HTML5和Java EE 7构建。 着陆页提供了有关跑步者总数,其城市/国家/地区,英里和迄今为止记录的小时数的摘要。

miles2run-landingpage

可以在台式机,平板电脑或手机上查看该网站。 跑步者可以使用常见的社交代理(例如Facebook,Google和Twitter)登录该网站。

任何机构都可以单击右上角的“社区运行”,以查看到目前为止已创建的所有组运行 。 这些只能由管理员创建。 JavaOne的团体跑步页面显示了有多少跑步者参加了这次跑步及其他统计。

miles2run-javaone-mainpage

每个跑步者都会看到一个仪表板,显示他们到目前为止已经跑了多少距离以及总/完成/剩余/缺席天数。

miles2run-javaone-dashboard1

显示了进度的可视化表示和活动日历的热图:

miles2run-javaone-dashboard2

显示了几天的里程折线图:

miles2run-javaone-dashboard3

然后还显示了过去几个月的活动摘要:

miles2run-javaone-dashboard4

跑步者还可以跟随其他跑步者并跟踪他们的活动。

这是应用程序的概念图:

miles2run体系结构

这是该应用程序的技术视图:

miles2run-tech

这是技术堆栈的简要说明:

  • 介绍
    • 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学习里程碑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elementui ts vant冲突_如何解决vue多个ui框架css冲突?

解决方法有很多,如果可以对html改动的话,就给你需要细化的页面元素加多一个class或者ID就行了,当然这种方法应该不是你想要的。那么接下来是不改变HTML的情况下,直接用css的方法来实现你想要的效果——方法一 细化选择符假如全局是…

在Spring中使用@ResponseStatus获取Http状态

介绍: 在Spring MVC中,我们可以通过几种方式设置HttpResponse的状态。 在本教程中,我们将使用ResponseStatus批注实现它。 我们可以使用ResponseStatus标记带有状态码和应返回原因的方法或异常类。 在调用标记的处理程序方法时或引发指定的异…

遇C语言条件编译就犯怵,不知什么意思,c语言头文件中的宏定义

前言看见头文件中的条件编译就犯怵,不知什么意思,但是,你老师说:”就得那么写“,你照做,但是知其然而不知其所以然。今天分享下是自己的理解~~~纯属个人献丑,新手可阅,老鸟绕道。代码…

pcie3.0一条通道带宽_小技巧|内存双通道提升性能

今天给大家分享一个小技巧,如果你的电脑有两条或以上的内存条,不同的内存插法也是会影响性能的哦,也就是内存双通道。什么是双通道?双通道内存说白了是两条内存由串联方式改良为并联方式,以得到更大的内存带宽&#xf…

react api_使用React流API将Akka流与rxJava结合在一起

react api这次只是快速的一篇文章,因为我仍在尝试这种东西。 关于React式编程有很多话题。 在Java 8中,我们有Stream API,有rxJava我们有ratpack ,Akka有akka-streams 。 这些实现的主要问题是它们不兼容。 您不能将一个实现的订…

linux安装mysql启动失败的原因_爱在linux系统安装mysql启动失败如何处理?

展开全部两个方法解决1、如果你没有修改过my.cnf文件,请修改,然后把添加datadir[mysqld]port 3306socket /tmp/mysql.sockdatadir /data/mysql/data这时候,你在/opt/mysql下面建32313133353236313431303231363533e4b893e5b19e…

关于Jakarta EE软件包名称更改的思考

Eclipse Foundation 宣布 Jakarta EE无法继续使用javax软件包名称。 显然,这是因为Java EE基于此名称,但不允许对该名称或以该名称开头的类或包进行进一步的修改。 尽管这当然是个坏消息,但对我来说,当宣布Jakarta EE不能将javax…

C++简介源码讲解精辟版,C++入门级C++学习,C++与C的区别值得知晓

C简介源码讲解精辟版,C入门级C学习,C与C的区别值得知晓C语言和C基础区别C标准输入和输出命名空1.命名空间的定义 :namespace 标识符{ } 例:namespace my{int a1;}命名空间中的成员访问:作用域分辨符:: 例&a…

jbpm 和 drools_Drools和jBPM KIE A​​pps平台

jbpm 和 drools随着Drools和jBPM(KIE)6系列出现了一个新的工作台,并有望最终实现用户的可扩展性。 我终于有了一些预告片,以显示此工作原理以及所存储的内容。 确保选择1080p并全屏显示它们的最佳状态。 (点击放大&am…

Spring ClassPathXmlApplicationContext

介绍: Spring提供了两种类型的容器: BeanFactory :它支持bean实例化和连接 ApplicationContext :它扩展了BeanFactory ,因此提供了所有这些功能,就像BeanFactory一样。 此外,它提供BeanPostPr…

mysql 1308_Mysql恢复数据报ERROR 1308 : LEAVE with no matching label_MySQL

赶紧看备份日志,日志如下:----------------------------------BEG:20151108 01:00:01FTP:20151108 01:00:05CLS:20151108 01:00:07OPT:20151108 01:00:08END:20151108 01:00:08----------------------------------日志并没有什么异常,既然说有…

真正的C与C++编程高手是什么?臭美的群体!如何编写高质量代码?

前 言软件质量是被大多数程序员挂在嘴上而不是放在心上的东西!除了完全外行和真正的编程高手外,初读本书,你最先的感受将是惊慌:“哇!我以前捏造的C/C程序怎么会有那么多的毛病?”别难过,作者只…

纪事本 乱码_纪事地图和Yahoo Cloud服务基准

纪事本 乱码总览 Yahoo Cloud Service Benchmark是一种相当广泛使用的基准测试工具,用于测试大量密钥(例如1亿个)和少量客户端(即由一台计算机提供服务)的密钥值存储。 在本文中,我将研究如何使用Chronicl…

windows10安装mysql 8.0_手把手教你在Windows 10安装MySQL 8.0(详细图文)

出品丨TeacherWhat题图:Oracle MySQL 8.0关键字:新版本、Install、安装、MySQL、数据库入门、Database正文约1000字,建议阅读时间2分钟目录结构:1. 官网下载安装包2. 点击下载的程序包安装3. 安装数据库软件4. 安装成功后&#xf…

Java:可选的可选实现

类java.util.Optional被实现为单个不可变的具体类,该类在内部处理两种情况。 一个有元素,一个没有元素。 让Optional作为一个接口并让两个不同的实现代替实现是一个更好的选择吗? 毕竟,这就是我们通常被教导要使用的一种面向对象的…

mysql降低数据库版本_三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQ...

三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 前思后想仍觉得实战数据库版本的降迁一文中的方式不仅老土而且低效,故有了下文三步搞定数据库从MSSQL2008R2 高版本降迁至SQL2005低版本。 整个过程如果思路清晰,数据量小,不过…

2017菜鸡C与C++工程师总结,撸码撸码,垃圾专科生撸码人生

前言年底了,对工作做一个总结。又要感叹那句话啊,时光流水,仿佛昨天才刚毕业,到今天不知不觉已经正式工作半年了。文章以po主自己的心理想法和所见所闻入手来写,垃圾专科生,文笔不好勿怪。开始正文吧。关于…

primefaces_PrimeFaces 5.0 DataTable列切换器

primefaces我有机会与PrimeFaces 5.0 DataTable一起工作,并且增强功能很棒。 今天,我只想展示其中的一项新功能……DataTable列切换器。 通过此功能,可以通过复选框列表选择显示哪些列。 要使用列切换器,只需添加一个commandButt…

opencv 编译 python导入_openCV3 Python编译指南

这里主要对openCV官网的《Installation in Linux》文档进行了翻译和解释原文见:https://docs.opencv.org/3.4.1/doc/tutorials/introduction/linux_install/linux_install.html#linux-installationRequired Packages(需求包)GCC 4.4.x or laterCMake 2.6 or higherG…

Docker化Spring Boot应用程序

你好朋友, 在本教程中,我们将看到如何对Spring Boot应用程序进行Docker化。通过dockerizing意味着我们将以Docker容器的形式运行应用程序。 以下是涉及的步骤: 1.创建一个Spring Boot应用程序 2.在您的机器上安装Docker 3.在您的项目中创…