小编end*_*ess的帖子

Spring 3.1 Environment不适用于用户属性文件

我这样做..

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中?谢谢.

java spring

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

在同一个模拟上使用多个ArgumentMatchers

我试图在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 mockito

13
推荐指数
2
解决办法
3042
查看次数

使Java GC日志显示MB或GB而不是KB

默认情况下,Java GC日志输出以KB(千字节)显示内存详细信息.我知道这可能听起来很愚蠢,但鉴于我所处理的大多数Jvms都有接近20到40GB的堆大小,我发现快速读取KB中的数字非常不方便,特别是在快速扫描腻子等日志时.

是否有可能使Java以MBGB的分数打印这些数字?

我在JDK文档中找不到任何选项.

如果不可能,是否有任何关于如何将此功能添加到GC日志记录的想法?(不是来自外部,而是来自JVM)

预先感谢您的帮助.

java logging profiling garbage-collection

12
推荐指数
2
解决办法
552
查看次数

强制SourceTree忽略git文件中的行结尾

有这么多帖子,但仍然没有明确或不适合我的决议.问题似乎众所周知..

  1. 我在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)
  2. 但我也喜欢使用SourceTree(通过NFS挂载指向相同的Unix代码库)以获得一些便利.上述属性的设置完全相同.
    但SourceTree基于纯粹的行结尾显示了一系列差异.

什么是直截了当的解决方案?
为什么SourceTree在这个UI中没有设置?

git line-endings atlassian-sourcetree

9
推荐指数
1
解决办法
2851
查看次数

使用的端口未显示在netstat -a结果中

这个问题最近在我尝试启动active-mq时启动(默认情况下在端口61616上启动).但突然间,它停止在该端口上出现JVM_BIND问题.即使重新启动计算机,问题也没有消失.

主要问题是Windows 7上的netstat -a命令没有显示消耗了61616.但是当我编写一个简单的Java程序来将套接字绑定到该端口时,我当然无法做到!

我最终通过移动到另一个端口启动了active-mq.但是,任何人都可以帮我找到为什么所有端口都没有出现在netstat -a结果中?谢谢.

networking activemq-classic netstat windows-7

7
推荐指数
1
解决办法
3263
查看次数

Bitbucket Pullrequest评审员的调查问卷/清单

我试图看看我是否可以在评论员批准Pull-request之前在Bitbucket中执行调查问卷.我想要使​​用的示例问题是......

  1. 如果所做的更改是针对许多地区共享的全局存储库,您是否与审核人员核实他/她是否通知了全球团队或任何特定的个人?
  2. 你检查了变量命名约定了吗?
  3. 是否有足够的评论围绕任何复杂的逻辑?
  4. 是否有足够的单元测试围绕新逻辑及其相关性,您是否检查了代码覆盖率报告?

这些只是一些示例问题,其中一些当然可以在构建过程中或在Sonar等中使用各种插件进行监控,但总有一些事情我们没有直接的自动化方法,就像上面的第一个示例问题一样.因此,在他们可以实现自动化之前,我至少要确保在提出请求之前解决这些问题.

问题:有没有人想到类似的情况,并在Bitbucket或使用任何插件直接找到任何支持?我的快速谷歌搜索没有产生任何有用的结果

git bitbucket pull-request bitbucket-server

6
推荐指数
2
解决办法
4056
查看次数

回滚丢失我的日志消息到文件

我编写了一个测试程序来验证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)

java log4j logback

5
推荐指数
1
解决办法
3856
查看次数

从 Conda 环境运行时,PyDev/Eclipse 不加载 _mklinit

我创建了一个 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 创建的环境时。

谢谢您的帮助!

python eclipse pydev conda

4
推荐指数
1
解决办法
6267
查看次数

以编程方式加载 Spring 3.1 中的属性

我正在尝试以编程方式创建 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)

所有类都在类路径上可用,如果我只是不以编程方式加载上述属性,应用程序就会正常运行(因为我使用其他方式加载属性)。

不确定,我在这里做错了什么。有任何想法吗?谢谢。

java spring properties

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

TeamCity的SonarQube与Jenkins的SonarQube

我们希望从Jenkins切换到TeamCity,我担心SonarQube与TeamCity的集成.我无法从Sonar/TeamCity网站上找到这些信息,所以只想问你们.

基于我读到的任何内容,SonarQube插件似乎与Jenkins一起工作得非常好.它与TeamCity的工作级别是否相同?与Jenkins相比,是否有任何我们无法使用的功能或用户体验有什么不好?

teamcity jenkins sonarqube

3
推荐指数
1
解决办法
3370
查看次数

有任何理由明确使用toString()方法在Java中打印对象

只是想知道是否有任何理由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()明确使用?

java tostring

2
推荐指数
1
解决办法
1314
查看次数