我什么时候使用就有点糊涂了${...}
比较#{...}
.Spring的文档仅使用#{...}
,但有很多示例使用${...}
.此外,当我开始使用SpEL时,我被告知要使用${...}
它并且工作正常.
对于那些困惑的人来说,我将如何使用它
@Component
public class ProxyConfiguration {
@Value("${proxy.host}")
private String host;
@Value("${proxy.port}")
private String port;
:
}
Run Code Online (Sandbox Code Playgroud)
和一些属性文件:
proxy.host=myproxy.host
proxy.port=8000
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我一直在使用log4j已经有一段时间了,我通常在log4j.xml的顶部使用它(可能就像许多其他人一样,根据谷歌这是这样做的方式):
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
Run Code Online (Sandbox Code Playgroud)
显然这是有效的,但Eclipse并没有为编写XML提供其上下文相关的帮助.此外,它总是显示一个警告,它没有找到log4j.dtd
.现在我很好奇如何解决这个问题.
我尝试了一些事情,这些工作:
<!DOCTYPE log4j:configuration SYSTEM "jar:file:/path/.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar!/org/apache/log4j/xml/log4j.dtd">
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
Run Code Online (Sandbox Code Playgroud)
从上面可以看出我们正在使用Maven.因此,我试过这个,但它失败了:
<!DOCTYPE log4j:configuration SYSTEM "jar:file:${M2_REPO}/log4j/log4j/1.2.14/log4j-1.2.14.jar!/org/apache/log4j/xml/log4j.dtd">
Run Code Online (Sandbox Code Playgroud)
Eclipse通常知道如何处理类路径变量,但为什么这不起作用?我知道引用在运行时不起作用,但也不是简单的log4j.dtd
(如果我没有错),所以这不应该是一个问题.
任何人都可以对此有所了解吗?
我有一个*.mp4视频文件(MPEG4视频编解码器),我正在尝试使用Linux上的ffmpeg将其转换为H264视频编解码格式(原始h.264格式)(版本 - FFmpeg版本SVN-r0.5.1-4: 0.5.1-1ubuntu1,版权所有(c)2000-2009 Fabrice Bellard,)使用如下所示的命令行,
ffmpeg -i input .mp4 output.h264
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误说 -
Unsupported codec for output stream #0.0
Run Code Online (Sandbox Code Playgroud)
然后当我尝试这个选项时:
ffmpeg -i input .mp4 -formats h264 output.h264
Run Code Online (Sandbox Code Playgroud)
它仍然不起作用,并给出 -
Seems stream 0 codec frame rate differs from container frame rate: 59.94 (5994/100) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Rapture.mp4':
Duration: 00:02:06.44, start: 0.000000, bitrate: 26574 kb/s
Stream #0.0(eng): Video: h264, yuv420p, 1920x1080, 29.97 tbr, 29.97 tbn, 59.94 tbc
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16
Run Code Online (Sandbox Code Playgroud)
然后它打印出我们所做的格式的帮助 ffmpeg -formats …
我的项目是使用SpringMVC + Mybatis + EXTJS4设置的.这是我的配置:
# Rules reminder:
# DEBUG < INFO < WARN < ERROR < FATAL
# Global logging configuration
log4j.rootLogger=DEBUG,stdout
log4j.logger.org.apache.ibatis=DEBUG,stdout
log4j.logger.java.sql=DEBUG,stdout
#log4j.additivity.com.ibatis = false
#log4j.additivity.java.sql = false
## Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n
Run Code Online (Sandbox Code Playgroud)
但是它不会在Console中打印SQL,任何人都可以帮助我吗?非常感谢
Map session = ActionContext.getContext().getSession();
session.put("user", user);
Run Code Online (Sandbox Code Playgroud)
此代码生成警告:类型安全:方法put(Object,Object)属于原始类型Map.应参数化对泛型类型Map <K,V>的引用.
Map<String, Serializable> session = (Map<String, Serializable>)ActionContext.getContext().getSession();
session.put("user", user);
Run Code Online (Sandbox Code Playgroud)
此代码生成警告:类型安全:未选中从Map转换为Map <String,Serializable>.
该的getSession方法属于Struts2的,所以我不能修改它.我想避免使用@SuppressWarnings,因为其他警告可能很有用.
我想世界上所有Struts2用户都遇到了同样的问题......有一个优雅的解决方案吗?
我是Infinitest等连续测试产品的忠实粉丝.最近我一直在做更多的JavaScript开发,并且正在为Visua Studio寻找类似的东西,它会在保存文件后立即运行我的Jasmine测试.Mighty Moose看起来就像是.NET代码.我喜欢Karma背后的想法,但理想情况下它会与Visual Studio 2012很好地集成.
有这样的野兽吗?
visual-studio continuous-testing jasmine infinitest karma-runner
当我进行Java开发时,我正在使用Infinitest进行连续测试,当我在.nET开发时,我真的很想念即时反馈
如何在C#和.NET中进行连续测试?
编辑:我不是在寻找持续集成,比如CruiseControl,TeamCity等.它是一个即时反馈工具,可以与我正在寻找的IDE一起使用
我的应用程序中有一个AudioTrack,设置为Stream模式.我想写一些通过无线连接收到的音频.AudioTrack声明如下:
mPlayer = new AudioTrack(STREAM_TYPE,
FREQUENCY,
CHANNEL_CONFIG_OUT,
AUDIO_ENCODING,
PLAYER_CAPACITY,
PLAY_MODE);
Run Code Online (Sandbox Code Playgroud)
参数定义如下:
private static final int FREQUENCY = 8000,
CHANNEL_CONFIG_OUT = AudioFormat.CHANNEL_OUT_MONO,
AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT,
PLAYER_CAPACITY = 2048,
STREAM_TYPE = AudioManager.STREAM_MUSIC,
PLAY_MODE = AudioTrack.MODE_STREAM;
Run Code Online (Sandbox Code Playgroud)
但是,当我使用write()将数据写入AudioTrack时,它将播放不稳定...调用
byte[] audio = packet.getData();
mPlayer.write(audio, 0, audio.length);
Run Code Online (Sandbox Code Playgroud)
只要通过网络连接接收到数据包就会生成.有没有人知道为什么它听起来不稳定?也许它与WiFi连接本身有关?我不这么认为,因为当我通过UDP将数据从Android手机发送到另一个来源时,声音听起来并不可怕.声音听起来完整而且根本没有波动......所以有人知道为什么会发生这种情况吗?
我有项目A和B,其中B需要A.内部项目AI有一个实用程序类UC,只能用于JUnit测试,因此,它位于src/test/java
项目A中.只要我在AI中编写测试就可以访问UC.但是,如果我运行Maven并希望它在B中执行测试,我会收到编译器错误,因为在B中无法访问UC.
显然,当Eclipse编译某些东西时,Eclipse包括所有源文件夹中的所有类(即,当我在B中编写测试时,它知道UC),而Maven删除了A的最终版本中的所有测试类.
我的问题是:当我使用Maven运行测试时,我需要做什么才能在B中访问UC?
请理解我是Maven的新手,我认为已经提出了类似的问题.但是,我无法将那里写的内容转换成我的问题并修复它.
我希望我很清楚我正在做什么......
我刚学会了这种精美的语法
Collections.<String>emptyList()
Run Code Online (Sandbox Code Playgroud)
得到一个空List
的元素,这些元素应该是类型的String
.Java的源代码如下:
public static final List EMPTY_LIST = new EmptyList<Object>();
:
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我以这种方式编写一个方法,其中泛型类型没有出现在参数列表中,那么我有什么方法可以访问成为的实际类T
?
我说,到目前为止,我的代码处理方法本来就是这样
private <T> T get(String key, Class<T> clazz) {
// here I can do whatever I want with clazz, e.g.:
return clazz.cast(value);
}
Run Code Online (Sandbox Code Playgroud)
如果我删除了clazz
参数,我将无法做到cast()
.显然我能做到
return (T) value;
Run Code Online (Sandbox Code Playgroud)
但这给了我通常的警告Type safety: Unchecked cast from Object to T
.好的,@SuppressWarnings("unchecked")
在这里有所帮助,但实际上我想用该方法的预期返回类型做一些事情.如果我添加一个局部变量
T retValue;
Run Code Online (Sandbox Code Playgroud)
我必须用一些东西初始化它,null
但没有帮助.在我分配之后
@SuppressWarnings("unchecked") …
Run Code Online (Sandbox Code Playgroud)