小编Ita*_*man的帖子

Eclipse中是否有快捷方式重新运行最近启动的程序?

我用Eclipse做的最常见的事情之一是重新运行最后一个程序.我通过运行 - >运行历史 - > [最顶级项目]来实现.

有没有这样做的快捷键?

我知道CTRL+ F11但这对我不起作用.仅当当前活动的类(我正在编辑其源代码的类)没有main方法时,它才会启动最新的程序.如果是,它将使用此类作为程序的入口点,而不是"运行历史记录"列表中的入口点.

eclipse ide

148
推荐指数
3
解决办法
4万
查看次数

Javac:将警告视为错误

我有一个编译我的程序的Ant文件.如果编译器报告任何警告,我希望javac任务失败.有关如何做到这一点的任何线索?

java ant warnings javac

58
推荐指数
1
解决办法
1万
查看次数

Tomcat:缓存控制

Jetty有一个CacheControl参数(可以指定webdefault.xml),用于确定客户端的缓存行为(通过影响发送给客户端的标头).

Tomcat有类似的选择吗?简而言之,我想关闭tomcat服务器和/或特定webapp提供的所有页面的缓存?

更新

请注意,我不是指服务器端缓存.我希望服务器告诉所有客户端(浏览器)不要使用自己的缓存并始终从服务器获取内容.我想一次为所有资源,包括静态资源(.css,.js等).

java tomcat

43
推荐指数
3
解决办法
8万
查看次数

node.js模块是否需要包装在模块模式中?

为了确保正确的隔离,我倾向于包装我在函数范围内编写的每个node.js模块:

(function() {
  var express = require('express');
  var jade = require('jade');
  var moment = require('moment');

  exports.someFunction = function() {
    // do something    
  };

  exports.otherFunction = function() {
    // do something else
  };
})();
Run Code Online (Sandbox Code Playgroud)

我已经这样做了一段时间,但我觉得node.js的模块系统实际上是为我做的,或者(换句话说)上面的代码等同于以下代码:

var express = require('express');
var jade = require('jade');
var moment = require('moment');

exports.someFunction = function() {
  // do something    
};
exports.otherFunction = function() {
  // do something else
};
Run Code Online (Sandbox Code Playgroud)

两者真的相同吗?特别是,我想知道是否被隔离级别是相同的:都是express,jademoment局部变量的模块?(即,我想确保它们未在全局范围内定义或干扰此模块之外的任何其他定义).

module node.js

29
推荐指数
1
解决办法
3173
查看次数

Swing UI的单元测试框架

测试UI很困难.您认为Swing最好的单元测试框架是什么?

java swing unit-testing

18
推荐指数
3
解决办法
4588
查看次数

以编程方式设置特定的bean对象 - Spring DI

在我的程序中,我需要以编程方式配置ApplicationContext.具体来说,我有一个MyClass实例的引用,我想将它定义为一个名为"xxyy"的新bean.

public void f(MyClass mc, ApplicationContext ac) {
  // define mc as the "xxyy" bean on ac ???
  ...
  ...

  // Now retrieve that bean
  MyClass bean = (MyClass) ac.getBean("xxyy");

  // It should be the exact same object as mc
  Assert.assertSame(mc, bean); 
}
Run Code Online (Sandbox Code Playgroud)

BeanDefinition API让我指定新bean的类,因此它不适合我,因为我想指定实例.我设法找到了一个解决方案,但它花了两个额外的工厂bean,这似乎是太多代码用于这样一个目的.

是否有满足我需求的标准API?

java spring dependency-injection

16
推荐指数
2
解决办法
2万
查看次数

将换行符插入预标记(IE,Javascript)

在IE中,当我将文本插入<pre>标记时,新行被忽略:

<pre id="putItHere"></pre>

<script>
function putText() {
   document.getElementById("putItHere").innerHTML = "first line\nsecond line";
}
</script>
Run Code Online (Sandbox Code Playgroud)

使用\r\n而不是普通\n不起作用.

<br/> 确实有效但在FF中插入了一个额外的空白行,这对我来说是不可接受的.

javascript internet-explorer pre

14
推荐指数
3
解决办法
2万
查看次数

依赖注入:按区域划分范围(Guice,Spring,Whatever)

这是我需求的简化版本.

我有一个程序,其中每个B对象都有自己的C和D对象,通过Guice注入.此外,A对象被注入每个C和D对象.

我想要的是:对于每个B对象,它的C和D对象将被注入相同的A对象.

[编辑-开始]

(1)Guice支持"单例"和"原型"模式.但是,我需要的是介于两者之间的东西:我需要A对给定的B对象进行单例WRT(这样注入B对象的C和D将共享一个A对象).对于另一个B对象,我想要另一个A.所以它是一个单例,但对于程序的有限范围(实际上,数据结构的范围有限).

(2)我不介意使用方法(setter)或现场注入的解决方案.

(3)我曾多次尝试实现这一目标,并且总觉得我只需要实现DI容器的一些自定义东西来实现这一点 - 但它从未奏效.因此,我正在寻找一个详细的解决方案(而不仅仅是"挥手")

[编辑-完]

具体来说,我希望程序的输出(如下)为:

Created C0 with [A0]
Created D0 with [A0]
Created B0 with [C0, D0]
Created C1 with [A1]
Created D1 with [A1]
Created B1 with [C1, D1]
Run Code Online (Sandbox Code Playgroud)

它当前产生以下输出的位置:

Created C0 with [A0]
Created D0 with [A1]  <-- Should be A0
Created B0 with [C0, D0]
Created C1 with [A2]  <-- Should be A1
Created D1 with [A3]  <-- Should be A1
Created B1 with [C1, D1]
Run Code Online (Sandbox Code Playgroud)

我期待DI容器允许这种定制,但到目前为止我没有找到解决方案的运气.下面是我的基于Guice的代码,但欢迎使用基于Spring(或其他基于DI容器)的解决方案.

  import java.util.Arrays; …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection guice

13
推荐指数
1
解决办法
2663
查看次数

CouchDB Java client

This wiki page, http://wiki.apache.org/couchdb/Getting_started_with_Java, lists several CouchDB Java clients. I wonder if any of the clients mentioned is significantly more dominant/popular/better/supported than the others.

java couchdb

11
推荐指数
1
解决办法
1万
查看次数

通过ScheduledExecutorService定期运行Callable

我有一个Callable<String>.我想定期运行它ScheduledExecutorService.scheduleAtFixedRate(),并获取.call()我的callable上的调用返回的所有字符串的列表.由于scheduleAtFixedRate不采取 Callable(只有Runnables)我需要推出一个自定义Runnable包装我的Callable东西,沿着这些方向:

final Callable<String> myCallable = ....;
final ConcurrentLinkedQueue<String> results 
  = new ConcurrentLinkedQueue<String>();

Runnable r = new Runnable() {
  @Override public void run() {
    try {
      results.add(myCallable.call());
    } catch (Exception e) { 
      results.add(null);  // Assuming I want to know that an invocation failed
    }
  }
};

ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(r, 0, 1, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

当然,我想避免推出我自己的自定义东西(特别是在多线程代码中),所以我想知道有一个JDK类可以进行这种聚合吗?

java java.util.concurrent

8
推荐指数
1
解决办法
3009
查看次数