小编Sta*_*tas的帖子

Spring bean在单元测试环境中重新定义

我们将Spring用于我的应用程序目的,并使用Spring Testing框架进行单元测试.但是我们遇到一个小问题:应用程序代码从类路径中的位置列表(xml文件)加载Spring应用程序上下文.但是当我们运行单元测试时,我们希望一些Spring bean是模拟而不是完整的实现类.此外,对于某些单元测试,我们希望一些bean成为模拟,而对于其他单元测试,我们希望其他bean成为模拟,因为我们正在测试应用程序的不同层.

所有这些意味着我想重新定义应用程序上下文的特定bean并在需要时刷新上下文.在执行此操作时,我只想重新定义位于一个(或多个)原始xml bean定义文件中的一小部分bean.我找不到一个简单的方法来做到这一点.一直认为Spring是一个测试友好框架的单元,所以我必须在这里遗漏一些东西.

你有什么想法怎么做吗?

谢谢.

spring unit-testing spring-test

51
推荐指数
4
解决办法
5万
查看次数

在JaxB中解组集合

假设我有这门课程:

public class A {

    private HashMap<String, B> map;

    @XmlElement
    private void setB(ArrayList<B> col) {
        ...
    }

    private ArrayList<B> getB() {
        ...
    }

}
Run Code Online (Sandbox Code Playgroud)

当尝试使用JaxB将xml文档解组到此类时,我注意到,而不是调用setB()方法并向我发送B实例列表,JaxB实际上调用了getB()并将B实例添加到返回的列表中.为什么?

我想要调用setter的原因是该列表实际上只是一个临时存储,我想从中构建map字段,所以我想在setter中这样做.

谢谢.

java jaxb unmarshalling

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

完整GC实时远远超过用户+系统时间

我们有大约1.2 GB(总机物理内存2 GB)的允许的最大堆大小JBoss上运行的Web基于Java的应用程序.在某些时候,应用程序停止响应(对客户端)几分钟.经过一些分析,我们发现罪魁祸首是Full GC.以下是详细GC日志的摘录:

74477.402:[全GC [PSYoungGen:3648K-> 0K(332160K)] [PSOldGen:778476K-> 589497K(819200K)] 782124K-> 589497K(1151360K)[PSPermGen:102671K-> 102671K(171328K)],646.1546860秒] [ 时报:用户= 3.84 SYS = 3.72,实际= 646.17秒 ]

我不明白是怎么回事可能是实时花费在全GC是约11分钟(646秒),而用户+ SYS时间是7.5秒.7.5秒声音对我来说更合理的时间花在从老一代清洗<200 MB.所有其他时间去哪儿了?

非常感谢.

java garbage-collection

12
推荐指数
1
解决办法
2677
查看次数