因此,对于演示,我将建立一个非常基本的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