我试图在Play!中使用java mongo驱动程序.
所以我读了:
http://www.playframework.org/documentation/2.0.2/SBTDependencies
http://www.mongodb.org/display/DOCS/Java+Tutorial
我在eclipse中添加了buildpath.但玩不能找到依赖.
所以在playframework主页上有一个例子,但我仍然无法弄明白.
val appDependencies = Seq(
"org.scala-tools" %% "scala-stm" % "0.3",
"org.apache.derby" % "derby" % "10.4.1.3" % "test"
)
Run Code Online (Sandbox Code Playgroud)
为什么两个%的迹象?我如何获得正确的名字?我只知道版本应该是2.8.0.因此,如果我想添加Java驱动程序,我该怎么办?
如果我使用官方的java驱动程序,我不必使用Morphia吧?
.
.
编辑:
import sbt._
import Keys._
import PlayProject._
object ApplicationBuild extends Build {
val appName = "website"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
"org.mongodb" % "mongo-java-driver" % "2.8.0"
//"com.mongodb" % "Mongo" %"2.8.0"
)
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
// Add your own project settings here …Run Code Online (Sandbox Code Playgroud) 我为缓存编写了一个函数来检索特定对象.这样我就不需要施放它了.
@SuppressWarnings("unchecked")
public static <T> T inCache(Class<T> obj, String token) {
Object cacheObj = Cache.get(token);
if (cacheObj != null) {
if (obj.isAssignableFrom(cacheObj.getClass())) {
return (T) cacheObj;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我这样用它
String s = inCache(String.class, title);
Run Code Online (Sandbox Code Playgroud)
但是现在我的缓存中有一个字符串列表,我不能像这样使用它
List<String> ipList = Util.inCache(List<String>.class, title);
Run Code Online (Sandbox Code Playgroud)
问题是List<String>.class.我是java的新手,我该怎么写呢?
@Cached(key="homePage")
public static Result index() {
return ok("Hello world");
}
Run Code Online (Sandbox Code Playgroud)
文档并没有告诉我很多关于智能缓存的信息.这真的是我必须要做的吗?
如果内容发生变化怎么办?播放是否会自动更新缓存?
这似乎很好.
更新1:
由于某种原因,它不起作用
@Cached(key="homePage")
public static Result index() {
Logger.info("" + Cache.get("homePage"));
return ok("Hello world");
}
Run Code Online (Sandbox Code Playgroud)
如果我理解正确Logger.info("" + Cache.get("homePage"));应该只调用一次(如果缓存是空的).但每次刷新页面时都会调用它.结果也始终为null,因此它甚至不起作用.
有任何想法吗?
更新2:
我试图添加duradion像:
@Cached(key="homePage",duration=3000)
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.
我正在使用亚马逊s3.
我的字形不会出现.
我在脑海中添加了以下内容
<style>
[class^="icon-"],
[class*=" icon-"] {
display: inline-block;
width: 14px;
height: 14px;
margin-top: 1px;
*margin-right: .3em;
line-height: 14px;
vertical-align: text-top;
background-image: url("https://s3.amazonaws.com/BUCKET/img/glyphicons-halflings.png");
background-position: 14px 14px;
background-repeat: no-repeat;
}
</style>
Run Code Online (Sandbox Code Playgroud)
我以为它会覆盖旧路径,但我仍然看不到字形.
有任何想法吗?
我只是将案例序列作为部分函数阅读,语法有点奇怪.
例如
def test: Int => Int = {
case 1 => 2
case 2 => 3
case _ => 0
}
Run Code Online (Sandbox Code Playgroud)
我希望它test没有参数,并返回一个类型的函数Int => Int
但经过一些测试后,它似乎需要一个int作为参数并返回一个int,所以我把它重写为......
def test1(i: Int): Int =
i match {
case 1 => 2
case 2 => 3
case _ => 0
}
Run Code Online (Sandbox Code Playgroud)
是test和test1平等?
我有一个看起来像这样的字符串
svchost.exe 4464 Services 0 47.656 K
Run Code Online (Sandbox Code Playgroud)
请注意,有很多空格,每种情况下的空格量都不同
我想提取名称svchost.exe和pid 4464.我能够做到这一点,但只能采取必要的方式.我很难以功能性的方式来解决这个问题.
用正则表达式解决这个问题是可能的,但我想看看你是如何用函数式编程做这样的事情的.
#include <vector>
using namespace std;
int main(){
vector<double> one;
one.size;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
.
error C3867: 'std::vector<_Ty>::size': function call missing argument list; use '&std::vector<_Ty>::size' to create a pointer to member
1> with
1> [
1> _Ty=std::vector<double>
1> ]
Run Code Online (Sandbox Code Playgroud)
我正在使用Visual Studio 2012.任何想法是什么导致这些错误?
我目前正在通过5th Superbible学习OpenGL.它会教你核心资料.但我真的很困惑.
我知道khronos删除了3.3中的固定功能管道,并将一些函数声明为已弃用.但Superbible现在只是用自己的功能取代那些已弃用的功能.
为什么khronos应该删除像glRotate或matrixstack这样的东西,以便我必须使用第三方库(或我自己的)而不是官方库?
也许这个超级明星有缺陷?
for_each(ivec.begin(),ivec.end(),
[]( int& a)->void{ a = a < 0 ? -a : a;
});
transform(ivec.begin(),ivec.end(),ivec.begin(),
[](int a){return a < 0 ? -a : a;
});
Run Code Online (Sandbox Code Playgroud)
我目前正在学习lambdas,我很好奇我上面发布的两个实现有何不同?
我知道传统的opengl只支持平面和gouraud阴影,但我想知道为什么不能使用phong阴影?
有人说这是不可能的,因为遗留的opengl丢弃了法线,但我不知道它们被丢弃的地方以及丢弃它们的原因.