我这样做..
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(context);
xmlReader
.loadBeanDefinitions(new ClassPathResource("SpringConfig.xml"));
PropertySourcesPlaceholderConfigurer propertyHolder = new PropertySourcesPlaceholderConfigurer();
propertyHolder.setLocation(new ClassPathResource(
"SpringConfig.properties"));
context.addBeanFactoryPostProcessor(propertyHolder);
......
context.refresh();
Run Code Online (Sandbox Code Playgroud)
现在在我的@Configuration文件中,如果我这样做,我的SpringConfig.properties中存在的属性就不会被拾取...
@Autowired
private Environment env
.....
env.getProperty("my.property")
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用,我会获得该属性
@Value("${my.property}")
private String myProperty;
Run Code Online (Sandbox Code Playgroud)
我甚至尝试添加这样的更多行,但没有用.
ConfigurableEnvironment env = new StandardEnvironment();
propertyHolder.setEnvironment(env);
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我的属性没有加载到Environment中?谢谢.
我试图在Mock上使用Mockito:
当使用argument1调用Mock.someMethod(..)时 - >返回result1
当使用argument2调用Mock.someMethod(..)时 - >返回result2
当Mock.someMethod使用argument3 - > return result3调用(..)
when(mock.method(Matchers.argThat(new MyMatcher1() {
@Override
public boolean matches(Object arg0) {
// comparision logic
}
}))).thenReturn(result1);
when(mock.method(Matchers.argThat(new MyMatcher2() {
@Override
public boolean matches(Object arg0) {
// comparision logic
}
}))).thenReturn(result2);
when(mock.method(Matchers.argThat(new MyMatcher3() {
@Override
public boolean matches(Object arg0) {
// comparision logic
}
}))).thenReturn(result3);
Run Code Online (Sandbox Code Playgroud)
但是Mockito正确地存储了第一个,但是在第二个上它会抛出NullPointer异常,因为它出于某种原因试图运行带有null agrument的Matcher.我不确定它是否得到支持.
如果这不是正确的方法,如何用Mockito实现这一目标?谢谢.
默认情况下,Java GC日志输出以KB(千字节)显示内存详细信息.我知道这可能听起来很愚蠢,但鉴于我所处理的大多数Jvms都有接近20到40GB的堆大小,我发现快速读取KB中的数字非常不方便,特别是在快速扫描腻子等日志时.
是否有可能使Java以MB或GB的分数打印这些数字?
我在JDK文档中找不到任何选项.
如果不可能,是否有任何关于如何将此功能添加到GC日志记录的想法?(不是来自外部,而是来自JVM)
预先感谢您的帮助.
有这么多帖子,但仍然没有明确或不适合我的决议.问题似乎众所周知..
我在unix中检查了我的项目,git状态显示没有差异.设置在这里:
bash-3.2$ git config core.autocrlf
false
bash-3.2$ git config core.whitespace
cr-at-eol
Run Code Online (Sandbox Code Playgroud)但我也喜欢使用SourceTree(通过NFS挂载指向相同的Unix代码库)以获得一些便利.上述属性的设置完全相同.
但SourceTree基于纯粹的行结尾显示了一系列差异.
什么是直截了当的解决方案?
为什么SourceTree在这个UI中没有设置?
这个问题最近在我尝试启动active-mq时启动(默认情况下在端口61616上启动).但突然间,它停止在该端口上出现JVM_BIND问题.即使重新启动计算机,问题也没有消失.
主要问题是Windows 7上的netstat -a命令没有显示消耗了61616.但是当我编写一个简单的Java程序来将套接字绑定到该端口时,我当然无法做到!
我最终通过移动到另一个端口启动了active-mq.但是,任何人都可以帮我找到为什么所有端口都没有出现在netstat -a结果中?谢谢.
我试图看看我是否可以在评论员批准Pull-request之前在Bitbucket中执行调查问卷.我想要使用的示例问题是......
这些只是一些示例问题,其中一些当然可以在构建过程中或在Sonar等中使用各种插件进行监控,但总有一些事情我们没有直接的自动化方法,就像上面的第一个示例问题一样.因此,在他们可以实现自动化之前,我至少要确保在提出请求之前解决这些问题.
问题:有没有人想到类似的情况,并在Bitbucket或使用任何插件直接找到任何支持?我的快速谷歌搜索没有产生任何有用的结果
我编写了一个测试程序来验证log4j上logback的性能改进.但令我惊讶的是,我遇到了这个奇怪的问题.我正在使用其Async和文件追加程序将一些200k日志消息循环写入文件.但是,每次,它只记录大约140k左右的消息并在此之后停止.它只打印我的上一个日志语句,表明它已将所有内容写入缓冲区并且程序终止.如果我只使用Log4j运行相同的程序,我可以在日志文件中看到所有200k消息.是否有任何基本的架构差异使这种情况发生?反正有没有避免它?我们正在考虑从log4j切换到logback,现在这让我重新思考.
这是我的logback configuraiton:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logback.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="FILE" />
</appender>
<root level="info">
<appender-ref ref="ASYNC" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是我的代码------------------
public static void main(String[] args) throws InterruptedException {
org.slf4j.Logger logbackLogger = LoggerFactory
.getLogger(LogbackTest.class);
List<Integer> runs = Arrays.asList(1000, 5000, 50000, 200000);
ArrayList<Long> logbackRuntimes = new ArrayList<>(4);
for (int run = 0; run < runs.size(); run++) { …Run Code Online (Sandbox Code Playgroud) 我创建了一个 conda 环境 - testenv2 - 安装了 python/numpy/pandas。在 Eclipse 项目设置中将其添加为解释器并使用它来运行我的测试 python 脚本。我收到以下错误。当我激活 conda 环境并在其中运行时,相同的测试脚本可以从命令行正常工作。它也适用于 PyCharm。但不知何故无法在 Eclipse 中启动。
Traceback (most recent call last):
File "C:\Data\projects\eclipse-workspace\PythonEclipse\Test.py", line 1, in <module>
import numpy as np
File "C:\Data\devtools\Anaconda3\envs\testenv2\lib\site-packages\numpy\__init__.py", line 140, in <module>
from . import _distributor_init
File "C:\Data\devtools\Anaconda3\envs\testenv2\lib\site-packages\numpy\_distributor_init.py", line 34, in <module>
from . import _mklinit
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
如果我只是使用我的根 Conda Python 解释器运行相同的测试脚本,它就可以正常工作。所以只有当我尝试使用我从 conda 创建的环境时。
谢谢您的帮助!
我正在尝试以编程方式创建 AnnotationConfigApplicationContext。我在 Spring XML 文件中得到一个配置类列表和一个属性文件列表。
使用该文件,我可以使用 XmlBeanDefinitionReader 并加载所有 @Configuration 定义。但是,我无法加载属性。
这就是我正在做的加载属性..
PropertiesBeanDefinitionReader propReader = new PropertiesBeanDefinitionReader(ctx);
for (String propFile : propertyFiles) {
propReader.loadBeanDefinitions(new ClassPathResource(propFile));
}
Run Code Online (Sandbox Code Playgroud)
代码只是在没有任何问题的情况下运行,但是一旦我调用 ctx.refresh() - 它会引发异常
Caused by: java.lang.IllegalStateException: No bean class specified on bean definition
at org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClass(AbstractBeanDefinition.java:381)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:990)
Run Code Online (Sandbox Code Playgroud)
所有类都在类路径上可用,如果我只是不以编程方式加载上述属性,应用程序就会正常运行(因为我使用其他方式加载属性)。
不确定,我在这里做错了什么。有任何想法吗?谢谢。
我们希望从Jenkins切换到TeamCity,我担心SonarQube与TeamCity的集成.我无法从Sonar/TeamCity网站上找到这些信息,所以只想问你们.
基于我读到的任何内容,SonarQube插件似乎与Jenkins一起工作得非常好.它与TeamCity的工作级别是否相同?与Jenkins相比,是否有任何我们无法使用的功能或用户体验有什么不好?
只是想知道是否有任何理由toString()明确地调用对象来打印它?
MyClass obj = new MyClass(); // Assume toString() method is overriden in this class
System.out.println(obj);
System.out.println(obj.toString());
Run Code Online (Sandbox Code Playgroud)
我显然使用第一种方法,但我的一位同事争辩说我应该放弃它obj.toString()!我觉得toString()只是多余而不使用它实际上减少了机会NPE!
我错过了什么或者有没有理由toString()明确使用?