Spring数据休息定制工作在eclipse测试用例中,但不是由maven surefire

时间:2015-11-27 07:09:01

标签: spring spring-boot spring-data-rest

您好我有一个奇怪的问题我正在使用弹簧数据休息与弹簧启动我的休息api。此外,我正在通过jackson模块进行一些自定义添加自定义BeanSerializerModifier来执行一些过滤操作。很奇怪的部分是bean serializer在使用eclipse测试用例时工作正常,这是以下方法

public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc,
     List<BeanPropertyWriter> beanProperties){

应用于每个类实体以及Spring数据休息包装器,如PagedResources和HalLinks。但是当我运行相同的maven测试用例时,它不会在实体类上应用(或被跳过),不知道为什么?

我如何注册jackson模块的代码如下

@Configuration
public class JacksonCustomizations {

    private @Autowired FilteringSerializerModifier serializerModifier;

    @Autowired(required = true)
    public void configeJackson(Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder) {
        jackson2ObjectMapperBuilder.modules(new HfdServicesModule());
    }

    /*
     * @Autowired CustomIntrospector customIntrospector;
     */

  /*  public @Bean Module hfServicesModule() {

        return new HfServicesModule();
    }*/

    @SuppressWarnings("serial")
    class HfdServicesModule extends SimpleModule {
        public HfServicesModule() {
            setSerializerModifier(serializerModifier);

        }

        @Override
        public void setupModule(SetupContext context) {

            super.setupModule(context);
        }
}

让我知道我错过了什么。

1 个答案:

答案 0 :(得分:0)

你好终于发现问题是maven reuseFork。这里的答案帮助我理解了同样的JUnit tests pass in Eclipse but fail in Maven Surefire

所以对于修复我不得不把它放在maven surefore插件中

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
    <reuseForks>false</reuseForks>
    <forkCount>1</forkCount>
</configuration>

希望它有助于......