簡單的Twitter:Heroku上的Play框架,AJAX,CRUD

因此,重大的公告發布了– Heroku開始為Play Framework應用程序提供本機支持! 如果您還沒有聽說過,請在Heroku的博客上查看Jesper Joergensen的帖子 。

因此,對于演示,我將建立一個非常基本的Twitter副本; 它本來就很簡單,但是卻顯示了Play足夠的生產力! 提供。 我將逐步完成設置演示應用程序的步驟,該應用程序應涵蓋Heroku博客文章中宣布的內容,但要更深入一些。

第一步,創建應用程序

play new twitter

將依賴性添加到CRUD模塊(conf / dependencies.yml)

- play -> crud

獲取依賴項

play dependencies

IDE整合

(對于Eclipse)

play eclipsify

(對于IntelliJ)

play idealize

(對于Netbeans)

play netbeansify

創建模型(app / models / Tweet.java)

package models;import java.util.Date;
import java.util.List;import javax.persistence.Entity;import play.data.validation.MaxSize;
import play.data.validation.Required;
import play.db.jpa.Model;@Entity
public class Tweet extends Model {@Required@MaxSize(140)public String tweet;@Requiredpublic Date createDate = new Date();public static List findLatest() {return Tweet.find(“order by createDate desc”).fetch();}@Overridepublic String toString() {return this.tweet;}}

為JPA模型定義數據庫(conf / application.conf)

db=${DATABASE_URL}

添加控制器操作(app / controllers / Application.java)

package controllers;import java.util.List;import models.Tweet;
import play.mvc.Controller;public class Application extends Controller {public static void index() {List tweets = Tweet.findLatest();render(tweets);}public static void create(String msg) {Tweet tweet = new Tweet();tweet.tweet = msg;tweet.save();render(tweet);}public static void tweets() {List tweets = Tweet.findLatest();renderJSON(tweets);}
}

定義主視圖(app / views / Application / index.html)

#{extends ‘main.html’ /}
#{set title:’Home’ /}<!– Create Tweet Form –><form> <input name=”tweet” type=”text” />
<input type=”submit” value=”Tweet” /> </form><!– Latest Tweets List –>
<ul> #{list tweets}
<li>${_.tweet} (${_.createDate.since()})</li><p><p>
#{/list}</ul>
<!– JS –>
<script type=”text/javascript”>// Capture Form Submit Event$(‘form’).submit(function() {// Define Create Actionvar createAction = #{jsAction @create(‘:tweet’) /}// Call Create Action$.post(createAction({tweet: $(‘input:first’).val()}), function(data) {// Prepend Results to the List$(‘ul’).prepend(data);$(‘input:first’).val(”);});// Don’t let the browser redirectreturn false;});</script>

定義創建操作視圖(app / views / Application / create.html)

<li><code>${tweet.tweet} (${tweet.createDate.since()})</li>

創建推文模型的單元測試

import models.Tweet;import org.junit.Assert;
import org.junit.Test;import play.test.UnitTest;public class TweetTest extends UnitTest {@Testpublic void testModelSave() {long count = Tweet.count();Tweet t = new Tweet();t.tweet = “my sample tweet”;t.save();long count2 = Tweet.count();Assert.assertEquals(count + 1, count2);}}

為推特模型創建CRUD管理員

package controllers;public class Tweets extends CRUD {
}

添加路由(conf / routes)

* /admin module:crudGET /rest/tweets Application.tweets

為CRUD管理員定義消息(conf / messages)

tweet=Tweet
createDate=Date Created

定義配置文件

web: play run –%$FRAMEWORK_ID –http.port=$PORT -DusePrecompiled=$USE_PRECOMPILED -DDATABASE_URL=mem

在開發中運行

play run –%dev -DusePrecompiled=false -DDATABASE_URL=mem

在Heroku上創建應用程序

heroku create play-twitter –stack cedar

heroku創建推特-堆疊杉

設置Git存儲庫

git init; git add .; git commit -a -m “Initial Commit”; git remote add heroku git@heroku.com:play-twitter.git

設置Heroku環境變量

heroku config:add FRAMEWORK_ID=prod; heroku config:add USE_PRECOMPILED=true

部署到Heroku

git push heroku master

如果有任何問題,您可以隨時檢查日志

heroku logs

在Heroku上設置真實數據庫

heroku addons:add shared-database

您可以檢出現場演示在這里 ,管理界面這里或克隆的源代碼Github上 。

參考:我們的JCG合作伙伴 Felipe Oliveira(位于Geek)完全使用 ,其中包含Play框架,AJAX,CRUD和Heroku的簡單Twitter逐步指南 。

相關文章 :

  • RabbitMQ播放模塊! 構架
  • Heroku運行Java
  • 在90分鐘內使用Grails構建Twitter:要點
  • Spring MVC開發–快速教程
  • Spring MVC3 Hibernate CRUD示例應用程序
  • Java教程和Android教程列表

翻譯自: https://www.javacodegeeks.com/2011/09/simple-twitter-play-framework-ajax-crud.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374980.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374980.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374980.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cron表達式

CronTrigger CronTriggers往往比SimpleTrigger更有用&#xff0c;如果您需要基于日歷的概念&#xff0c;而非SimpleTrigger完全指定的時間間隔&#xff0c;復發的發射工作的時間表。CronTrigger&#xff0c;你可以指定觸發的時間表如“每星期五中午”&#xff0c;或“每個工作日…

深入理解JavaScript學習筆記(3)_全面解析Module模式

簡介 Module模式是JavaScript編程中一個非常通用的模式&#xff0c;一般情況下&#xff0c;大家都知道基本用法&#xff0c;本文嘗試著給大家更多該模式的高級使用方式。 首先我們來看看Module模式的基本特征&#xff1a; 模塊化&#xff0c;可重用封裝了變量和function&#x…

匯編----乘指令: MUL、IMUL

MUL: 無符號乘 ;影響 OF、CF 標志位;指令格式:;MUL r/m ;參數是乘數;如果參數是 r8/m8, 將把 AL 做乘數, 結果放在 AX;如果參數是 r16/m16, 將把 AX 做乘數, 結果放在 EAX;如果參數是 r32/m32, 將把 EAX 做乘數, 結果放在 EDX:EAX IMUL: 有符號乘 ;影響 OF、CF 標志位;…

Google App Engine Java功能和命名空間API

功能API 使用Capabilities API&#xff0c;您的應用程序可以檢測特定API功能的停機和計劃停機時間。 您可以使用此API來檢測應用程序何時不可用&#xff0c;然后繞過它來減少應用程序的停機時間。 我們該如何處理&#xff0c;這是個折衷方案&#xff1f; 1.優雅&#xff1a;創…

破解key file時經常用到的幾個API函數及其用法

CreateFile函數 ================================================================================== CreateFile: Creates or opens a file or I/O device. The most commonly used I/O devices are as follows: file, file stream, directory, physical disk, volume, …

PHP計劃任務之關閉瀏覽器后仍然繼續執行的函數

函數名稱&#xff1a;ignore_user_abort 本函數配置或取得使用端連接中斷后&#xff0c;PHP 程序是否仍繼續執行。默認值為中斷連接后就停止執行。在 PHP 配置文件中 (php3.ini/php.ini) 的 ignore_user_abort 選項就是配置處。本功能在 PHP 3.0.7 版之后才開始提供。 官方說明…

node--更新數據庫問題

昨天測試blog的comment功能&#xff0c;在新增comment相關的代碼之后&#xff0c;重啟應用&#xff0c;出現Cannot call method forEach of undefined 。反復核對代碼&#xff0c;都沒發現異常&#xff0c;最后將數據庫文件刪除之后&#xff0c;再重啟數據庫&#xff0c;一切正…

U盤做完啟動盤,如何恢復原始容量

&#xff08;1&#xff09;右擊“我的電腦”&#xff0c;選擇“管理”選項&#xff0c;之后選擇“磁盤管理”&#xff0c;查看自己U盤的索引&#xff0c;如&#xff1a;Disk 1&#xff08;2&#xff09;在運行窗口&#xff0c;輸入cmd&#xff0c;回車&#xff0c;出現Dos運行環…

GWT Spring和Hibernate進入數據網格世界

利用Infinispan數據網格的功能最大化Hibernate性能。 一個GWT &#xff0c; Spring &#xff0c; JPA &#xff0c; Hibernate &#xff0c; Infinispan集成教程。 在本教程中&#xff0c;我們將討論如何將Infinispan用作Hibernate二級緩存提供程序。 Infinispan是JBoss緩存的…

記對一個key file crackme的破解

crackme下載地址: http://kssd.pediy.com/tutorial/exercise/section04/chap6-1-4-03.zip ------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------…

第八章 CTE 遞歸 及 分組匯總 高級部分(多維數據集)

UNION 等集合操作符&#xff1a;UNION 等以第一個 SELECT 的 列明 作為 整個結果集的列明&#xff0c;整個結果集 唯一認可的 唯一邏輯處理階段 是 ORDER BY 這個意思是說 只有 ORDER BY 是對整個結果集作用的&#xff0c;其它都操作都作用在 UINON 兩側的 子集合中。EXCEPT 操…

Java Code Geeks Andygene Web原型

大家好&#xff0c; 我們很高興地宣布&#xff0c;一組Maven原型的第一個版本已經發布&#xff01;&#xff01;&#xff01; 該集合的目的是提供可以滿足各種開發需求的項目模板。 您可以在本文末尾找到JCG路線圖。 該第一個發行版旨在提供項目模板-Web應用程序的體系結構。 …

關于如何用od反匯編win32 控制臺程序

*********************************************************** 如何用od反匯編win32 控制臺程序(類似dos程序&#xff09;呢&#xff1f;*********************************************************** 注&#xff1a;od是用來調試win32程序的 1.反編譯win32 控制臺程序&…

Chrome/Chromium HTML5 video 視頻播放硬件加速

Chromium站點上有個大致的框圖。描寫敘述了Chromium的video在各個平臺 - 包含Android - 上是怎樣使用硬件資源來做視頻編解碼加速的&#xff1a; 而依據Android Kitkat上的Chromium代碼分析&#xff0c;HTML5 video播放硬件加速&#xff0c;終于是使用MediaCodec.java來利用本地…

.net mvc結合微軟提供的FormsAuthenticationTicket登陸

一、Web.config <system.web><compilation debug"true" targetFramework"4.5" /><httpRuntime targetFramework"4.5" /><authentication mode"Forms"><forms loginUrl"/Sign/SignIn" defaultUrl…

vc6.o--fatal error C1010錯誤的解決

當編譯c文件時&#xff0c;出錯信息為&#xff1a;fatal error C1010: unexpected end of file while looking for precompiled header directive 解決方案&#xff1a; 1、如果發生錯誤的文件是由其他的C代碼文件添加進入當前工程而引起的&#xff0c;則AltF7進入當前工程的…

具有Java 7中自動資源管理功能的GC

這篇文章簡要概述了Java 7中引入的稱為自動資源管理或ARM的新功能。 文章探討了ARM如何減少開發人員為有效釋放分配的資源的JVM堆而必須編寫的代碼。 Java編程語言中編程的最甜蜜之處之一是對象取消分配的自動處理。 在Java世界中&#xff0c;這通常被稱為垃圾收集。 基本上&am…

PHP學習筆記(六)

《Wordpress 50個過濾鉤子》 1-10 過濾鉤子是一類函數&#xff0c;wordpress執行傳遞和處理數據的過程中&#xff0c;在針對這些數據做出某些動作之前的特定點執行。本質上&#xff0c;就是在wordpress輸出之前&#xff0c;將對瀏覽數據做出反應。 添加過濾鉤子&#xff1a; ad…

JS 操作 radio input(cc問卷管理)

1、選中特定的單選按鈕 function showDetail(content){$("input[name^radio]").removeAttr("checked");for(var i0;i<content.length;i){$("#radio"(i1)content.substr(i,1)).attr("checked","checked");} }2、手動添加問…