1瞬项、play的Ebean配置
application.conf配置蠕嫁,在下面添加塊
ebean {
? ? ? ? default="models.*"
}
在根目錄下的bulid.sbt添加PlayEbean
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
在project下的plungins.sbt里添加
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.2")
這時候運行activator run
數(shù)據(jù)庫建表user地梨,添加提交數(shù)據(jù)菊卷,app下創(chuàng)建文件夾models,創(chuàng)建文件User.java添加set宝剖,get方法及finder方法
controller的HomeContorller.java添加方法
public ? ?Result ? ? getUser() {
? ? ? ? ? ?List<User> user ? = ? User.find.findList();
? ? ? ? ? ? return ?ok(Json.toJson(user));
}
routers里添加聲明
GET? ? /users? ? ? ? ? ? ? ? ? ? ? controllers.HomeController.getUser()
瀏覽器輸入 http://localhost:9000/users嘗試洁闰,返回結(jié)果
2、angular2前端項目調(diào)用
? ? ?編寫service.ts
? ? 創(chuàng)建 services的目錄在目錄下創(chuàng)建app.services.ts
將AppService添加到app.module.ts,注意引入放到providers里
這時候在ts里調(diào)用就可以了
ngOnInit() {
? ? ? this.appService.getUsers().then( i=>console.log(i));
}
這時候問題又來了诈闺,控制臺查看請求數(shù)據(jù)時返回的渴庆,但是報了跨域問題。
確實服務(wù)是localhost:9000 前端是localhost:4200
3雅镊、跨域資源共享 CORS襟雷、
? ? CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)仁烹。
? ? 它允許瀏覽器向跨源服務(wù)器耸弄,發(fā)出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制卓缰。
? ?剛好在配置文件里有一塊就是cors的配置计呈,也就是跨域的配置?
? ?application.conf
? ?在build.sbt里添加filters
libraryDependencies ++= Seq(
? ? javaJdbc,
? ?cache,
? ?javaWs,
? ?filters
)
現(xiàn)在需要在filter下創(chuàng)建Filters.java,在這之前征唬,先把建項目生成那一堆東西刪點吧
routersli的接口聲明都刪掉捌显,對應(yīng)的java文件也都刪掉吧
app根目錄下的Filter.java ? Modoule.java ? 刪掉
views目錄 ? 刪掉
controllers里的 AysncController.java ?CountController.java 刪掉
filter下文件改名為Filters.java
內(nèi)容修改如下
packagefilters;
importjavax.inject.Inject;
importplay.filters.cors.CORSFilter;
importplay.http.DefaultHttpFilters;
publicclassFiltersextendsDefaultHttpFilters {
? ? ?@Inject
? ? ? publicFilters(CORSFiltercorsFilter) {
? ? ? ? ? ? ? ?super(corsFilter);
? ? ? ?}
}
這時候在訪問下就可以了,沒有跨域問題了总寒,可以進行開發(fā)了
參考鏈接? cors-filter