在Grails中,我們有包含從控制器調用的業務邏輯的服務類。 我在哪裏可以在Play Framework項目中添加服務類?如果我在控制器中定義了不是請求操作的方法,而是在控制器中定義了諸如int findMax(int a,int b)等實用方法,是否可以在控制器中定義這些方法,以及如何聲明這些方法?在Play Framework中放置服務類的位置?
10
A
回答
8
根據具體情況,業務邏輯一般應作爲模型類的方法實現,無論是靜態還是非靜態。
儘管沒有關於此的規則,但實用程序方法應該在包中使用它們自己的實用程序類,或者可以根據上下文成爲模型類的一部分。
作爲示例,比較兩個基元(例如findMax(int, int)
類)的簡單實用程序方法在實用程序類中效果更好,但方法(如findOldest(Person, Person)
)更適合在Person模型類上作爲靜態方法。
2
對此沒有規定。我個人會將效用方法放在效用類中。實用程序類和服務類應遵循正常的包規則,即com.stackoverflow.services.statistic.UsageCalculator
。
0
您可以在應用程序文件夾中創建包並編寫您自己的服務類或邏輯類。 然後,您可以在應用程序控制器中使用此類及其方法。
Make Package in app folder: for eg。 play.service.chiken並在此包使新類
{
package play.service.chiken;
import java.util.ArrayList;
import java.util.List;
import models.QuotesModel;
public class Utility {
public List<QuotesModel> getListOfQuotes(int itemCount)
{
ArrayList<QuotesModel> list=new ArrayList<QuotesModel>(10);
for(int x=0;x<itemCount;x++)
{
QuotesModel quotesModel=new QuotesModel();
quotesModel.authorName="";
quotesModel.category="";
quotesModel.bookmark="Y";
quotesModel.id=x+"";
quotesModel.content="Quotes n umber ,njdsfkhwjd jr x=" +x;
list.add(quotesModel);
}
return list;
}
}
}
然後使用這個類在應用程序控制器:在路由器
public static Result entryInDB() {
Utility util=new Utility();
List<QuotesModel> list=util.getListOfQuotes(50);
list.get(2).save();
List<QuotesModel> secondlist=QuotesModel.find.all();
return ok(index.render("Size Of List "+secondlist.toString()));
}
變化application.conf文件:
# Ebean configuration
# ~~~~~
# You can declare as many Ebean servers as you want.
# By convention, the default server is named `default`
#
ebean.default="models.*"
在路由器中:
# Home page
GET / controllers.Application.index()
GET /addbar controllers.Application.addBar()
GET /entryindb controllers.Application.entryInDB()
相關問題
- 1. Android位置與Google Play服務
- 2. Google Play位置服務api備用
- 3. Google Play服務 - 位置Xamarin Android
- 4. Google Play服務位置丟失NullPointerException
- 5. Zend Framework - 放置robots.txt文件的位置?
- 6. 安卓支票位置服務已啓用播放服務位置api
- 7. 在子項目中放置Play Framework 2.1數據庫的演變?
- 8. Play Framework 2設置表單輸入類
- 9. Play Framework服務HTTPS內容
- 10. 在TFS版本中通過服務器訪問放置位置
- 11. 在Google Play遊戲服務中檢索排行榜位置
- 12. Google Play服務位置API設置問題
- 13. Play Framework(2.4)和DB2配置
- 14. Play Framework 2.1 IDE設置
- 15. Play Framework配置參數
- 16. 將robots.txt文件放置在碼頭服務器上的位置?
- 17. 放置驗證邏輯的位置?在服務或存儲庫?
- 18. 谷歌Play服務的位置API在GPS關閉
- 19. Play for Scala standalone中放置application.conf的位置?
- 20. iOS中的位置服務
- 21. Google Play服務框架位置有時並沒有給出確切的位置
- 22. Android谷歌播放位置服務
- 23. 單元測試使用Mockito的Java Play Framework中的服務類
- 24. 位置服務?檢測您的位置
- 25. Play Framework中適當的位置以避免引號?
- 26. 在NSView中放置位置
- 27. Zend Framework中Application.php的位置
- 28. 將外部位置源數據注入Google Play位置服務:如何?
- 29. Play Framework中的Java郵件會話資源配置Netty服務器
- 30. 事件處理程序應放在Windows服務中的位置?
假設我在project_root/app下創建了util文件夾,會自動播放框架來獲取那裏定義的類,或者我需要在配置中添加一些東西?如果我在project_root下創建util文件夾而不是在app下創建? – ace 2011-06-10 08:13:50
應用程序文件夾是所有的Java源代碼去的地方,所以你的util文件夾應該放在那裏。您無需更改配置,Play會自動提取。此處的任何代碼都將位於util包中。 – Rich 2011-06-10 10:41:28
我很想知道爲什麼這個答案有一個downvote。 – Rich 2014-09-15 08:49:20