我使用Guice绑定有以下代码:
public class MyApplication {
public static void main(String[] args) {
Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(Foo.class).annotatedWith(Names.named("first")).toInstance(new Foo("firstFoo"));
bind(Foo.class).annotatedWith(Names.named("second")).toInstance(new Foo("secondFoo"));
bind(Bar.class).to(BarImpl.class);
bind(MyApplication.class).asEagerSingleton();
}
});
}
private @Named("first") Bar first;
private @Named("second") Bar second;
static @Value class Foo { String name; }
static interface Bar {}
static class BarImpl implements Bar {
@Inject @Named Foo foo;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试为我的应用程序中注入的Bar两个命名Foos 获取一个对象.基本上,它应该以某种方式将@Namedon Foo与on on 连接起来Bar.我尝试了几种解决方案,从@Named一切到写自定义Provider.后者不起作用,因为我无法访问@Named提供程序中的注释值.我认为解决方案就在某个方面 …
我正在使用HTML5 Notification API在新内容可用时显示消息.我想显示浏览器选项卡,该选项卡会在用户单击邮件时激活通知,但我无法找到API来执行此操作.我确实找到了Page Visibility API,但它似乎只在标签更改时发送事件,而不允许我激活标签.
是否可以像这样控制浏览器,还是根本不允许?
我正在使用gradle“应用程序”插件启动我的应用程序。这很好。现在,我想添加选项以在同一项目中启动另一个主类。我可以更改插件的配置以允许吗?
apply plugin: 'application'
mainClassName = "net.worcade.my.MainClass"
Run Code Online (Sandbox Code Playgroud) 我在 Tomcat 7 中运行两个 Web 应用程序。
Tomcat 有一个logback-access.xml,它定义了两个附加程序。
我可以看到它在启动 tomcat 时被拾取,并且附加程序配置已正确解析。
我的问题是,如何让 web 应用程序使用其中定义的附加程序?
我尝试将<logger>和<root>元素放入logback-access文件中,但这会产生错误:
[logger] 没有适用的操作,当前 ElementPath 是 [[configuration][logger]]
, 和root类似appender-ref。
我尝试将一个logback.xml文件放入我的战争文件中,既是WEB-INF/classes又是WEB-INF,但它似乎没有被拾取。
那么,我应该如何正确配置呢?
Tomcat中logback-access.xml的:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<append>true</append>
<file>${catalina.base}/logs/my=app.log</file>
<encoder>
<pattern>combined</pattern>
</encoder>
</appender>
<appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>localhost:5044</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<!-- cut specific config -->
</providers>
</encoder>
</appender>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在:logback.xmlWEB-INF/classes
<?xml version="1.0" …Run Code Online (Sandbox Code Playgroud) 在Java中将50位数字符串转换为BigInteger的最佳方法是什么?它没有valueOf(String)方法,我无法转换为Long,因为它太小了.
我正在寻找javax.imageio包的一个很好的替代品,它允许我对图像进行简单的旋转,切割和缩放操作.例如,我想做
int angle, height, width;
image.rotateRight(angle).scale(height, width);
Run Code Online (Sandbox Code Playgroud)
为了获得向右旋转角度并向下缩放到高度 x 宽度像素的图像.
使用Graphics2D和BufferedImages,我将不得不这样做,这既不易读也不易写:
BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = result.createGraphics();
graphics.translate(height/2, width/2);
graphics.rotate(angle);
graphics.translate(-width/2, -height/2);
graphics.drawImage(image, 0, 0, width, height, null);
Run Code Online (Sandbox Code Playgroud)
(实际上,该代码甚至不能解释非方形图像,这将要求我在翻译时做更多的魔术).
我有一个问题,我的Java程序突然退出,没有任何异常抛出或程序正常完成.
我正在编写一个程序来解决Project Euler的第14个问题.这就是我得到的:
private static final int INITIAL_CACHE_SIZE = 30000;
private static Map<Long, Integer> cache = new HashMap<Long, Integer>(INITIAL_CACHE_SIZE);
public void main(String... args) {
long number = 0;
int maxSize = 0;
for (long i = 1; i <= TARGET; i++) {
int size = size(i);
if (size > maxSize) {
maxSize = size;
number = i;
}
}
}
private static int size(long i) {
if (i == 1L) {
return 1;
}
final int …Run Code Online (Sandbox Code Playgroud) 我有一个Java程序,它执行一些字符串匹配.我正在寻找\d+x\d+在String 中匹配的任何东西.这可以使用Pattern和Matcher类.但是,要解析String我找到的部分,我必须手动解析String我得到的Matcher.find()和Matcher.group().我怎么能告诉Pattern我我正在寻找某种形式的东西(\d+)x(\d+)并让Matcher它们分别归还这些群体?因此,我想要获得两个字符串"1"和"23",而不是字符串"1x23".