鉴于使用下面的代码创建的Guava缓存是否有最大缓存大小,如果没有设置?
LoadingCache<String, String> loadingCache = CacheBuilder.newBuilder().build(new CacheLoader<String, String>() {
@Override
public String load(String key) throws Exception
{
return key.toUpperCase();
}
});
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我真的想要一个没有上限的缓存.我正在使用缓存来存储登录用户的权限,并将在用户注销或会话到期时从缓存中逐出项目.
是否有可能用Java编写一个防病毒程序,例如它可以拦截程序被执行?我可以在Java中对操作系统进行如此深入的控制吗?
更新:c#怎么样?同样的限制适用或更好的方式?
我该如何正确设置Maven 3?
我的环境:
我的.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$M2_HOME/bin
export PATH
JAVA_HOME=/usr/java/jdk1.7.0_02
export JAVA_HOME
M2_HOME=/home/ic/apache-maven-3.0.4
export M2_HOME
Run Code Online (Sandbox Code Playgroud)
当我输入java -version时,系统会显示给我
java version "1.7.0_02"
Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
Java HotSpot(TM) Client VM (build 22.0-b10, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
但是当我键入mvn -v时,它显示我:
bash: mvn: command not found...
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能正确设置Maven 3?
提前致谢!
在处理从JMS收到的Exchange时,我正在动态创建一个从FTP获取文件到文件系统的路由,当批处理完成后,我需要删除相同的路由.以下代码片段显示了我是如何做到这一点的:
public void execute() {
try {
context.addRoutes(createFetchIndexRoute(routeId()));
} catch (Exception e) {
throw Throwables.propagate(e);
}
}
private RouteBuilder createFetchIndexRoute(final String routeId) {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("ftp://" + getRemoteQuarterDirectory() +
"?fileName=" + location.getFileName() +
"&binary=true" +
"&localWorkDirectory=" + localWorkDirectory)
.to("file://" + getLocalQuarterDirectory())
.process(new Processor() {
RouteTerminator terminator;
@Override
public void process(Exchange exchange) throws Exception {
if (camelBatchComplete(exchange)) {
terminator = new RouteTerminator(routeId,
exchange.getContext());
terminator.start();
}
}
})
.routeId(routeId);
}
};
}
Run Code Online (Sandbox Code Playgroud)
我正在 …
我刚刚第一次安装了Maven2.
默认情况下,它会将一些有用的jar放入本地项目中:jakarta-commons,junit等.
我想引入最新的Spring版本(在撰写本文时为2.5.6).但是我看到的在线存储库(iBiblio和Maven)只有很多旧版本的Spring库.
是否有其他存储库保持最新?这里的最佳做法是什么; 我们可以自己维护吗?我会准备帮助维护这些东西!
我们有一个32位客户端进程,通过CORBA与远程计算机上运行的旧服务器应用程序进行通信.这已经运行良好且可靠了大约12年.
我们需要(暂时)将我们的客户端进程切换到64位以获得更多内存(等待即将重写)并且几乎立即遇到远程应用程序的一些问题.这个过程反复崩溃.最初这没有任何意义,如果远程应用程序使用与CORBA等平台无关的协议,它如何对客户端应用程序VM敏感?
经过几天的调查,我们发现远程进程崩溃与客户端VM无关,但似乎与我们发送的参数排序有关.
我们向服务器发送一组请求的结果类型,这最初取自config并放入HashSet,在最后一分钟转换为数组.服务器应用程序似乎对请求的结果类型的顺序敏感.
例如,如果我们发送PV(0),DELTA(1),NPV(2),GAMMA(3)就可以了.如果我们发送GAMMA(3),PV(0),DELTA(1),NPV(2),远程应用程序崩溃.这似乎是远程应用程序中一个从未暴露过的奇怪错误,因为订单始终是数字(偶然).
它是64位的转换,似乎有所不同,64位版本产生了来自HashSet的不同元素排序.这不是我预期的,但我怀疑HashCodes只是在平台上确定性的.
确保在发送之前对数组进行排序已修复该问题.切换到TreeSet也会有所帮助,但在某个地方的某个库深处.
我们需要担心32位和64位之间还有其他奇怪的问题吗?到目前为止,我对转换的简单程度印象深刻,其他代码根本没有变化.
目前我们正在使用Java 6,而Java 8的迁移迫在眉睫.迁移到Java 8时,我们可以期待类似的问题吗?
如果我重写OnPaint并在控件上绘制一个正方形,那么当我在设计器中预览时,如何让e.graphics.draw ...出现?
我需要一些帮助.我想创建一个for循环,创建一个类的n个对象,然后将它们添加到一个arraylist中.像这样的东西:
//Player is a custom class
ArrayList<Player> numberofPlayersArray;
numberofPlayersArray = new ArrayList<Player>();
//n is a variable for the number of Player class objects that I want to create
for(int i = 0; i < n; i++)
{
//this is what I can come up with but I am missing something
Player p;
p = new Player
numberofPlayersArray.add(p);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
我有兴趣找出在Apache Camel中直接处理的最佳方法.
我有几个不同的组件,我可以在同一个JVM中启动,它与我的activemq代理分开.是否有意义尝试设置它以便我的消息从一个组件传递到下一个组件,按顺序阻塞?我将如何设置camel以确保每条消息在下一条消息启动之前到达路径中的每个组件?
更具体一点:我想通过我的brokerURI配置来做到这一点.我看到了这个页面:http: //fusesource.com/wiki/display/ProdInfo/Understanding+the+Threads+Allocated+in+ActiveMQ但我不确定在哪里/如何实现选项 - optimizedDispatch似乎对代理有效destinationPolicy选项.
谢谢