当前位置: 首页 > 面试题库 >

在Spring中配置ObjectMapper

龚彬
2023-03-14
问题内容

我的目标是配置objectMapper,使其仅序列化带有注释的元素@JsonProperty

为了做到这一点,我按照下面的说明进行了说明,该说明说明了如何配置对象映射器。

我包括自定义描述objectmapper 这里。

但是,当类NumbersOfNewEvents被序列化时,它仍包含json中的所有属性。

有人暗示吗?提前致谢

Jackson 1.8.0 spring 3.0.5

CustomObjectMapper

public class CompanyObjectMapper extends ObjectMapper {
    public CompanyObjectMapper() {
        super();
        setVisibilityChecker(getSerializationConfig()
                .getDefaultVisibilityChecker()
                .withCreatorVisibility(JsonAutoDetect.Visibility.NONE)
                .withFieldVisibility(JsonAutoDetect.Visibility.NONE)
                .withGetterVisibility(JsonAutoDetect.Visibility.NONE)
                .withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)
                .withSetterVisibility(JsonAutoDetect.Visibility.DEFAULT));
    }
}

servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <context:component-scan base-package="de.Company.backend.web" />

    <mvc:annotation-driven />

    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                    <property name="objectMapper" ref="jacksonObjectMapper" />
                </bean>
            </list>
        </property>
    </bean>

    <bean id="jacksonObjectMapper" class="de.Company.backend.web.CompanyObjectMapper" />
</beans>

NumbersOfNewEvents

public class NumbersOfNewEvents implements StatusAttribute {

    public Integer newAccepts;
    public Integer openRequests;

    public NumbersOfNewEvents() {
        super();
    }
}

问题答案:

使用Spring Boot(1.2.4)和Jackson(2.4.6),以下基于注释的配置对我有用。

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);

        return mapper;
    }
}


 类似资料:
  • 问题内容: 我的目标是配置,使其仅序列化带有注释的元素。 为了做到这一点,我按照下面的说明进行了说明,该说明说明了如何配置对象映射器。 我包括自定义描述这里。 但是,当类被序列化时,它仍包含中的所有属性。 有人暗示吗?提前致谢 杰克逊1.8.0Spring3.0.5 CustomObjectMapper servlet.xml 问题答案: 使用Spring Boot(1.2.4)和Jackson(

  • 问题内容: 我曾经让我的所有DAO扩展了该类,而该类现在在Spring 3.1中 已弃用。我已经制作了自己的类,其中包装了所有DAO ,并从那里扩展了所有内容。那是我应该做的方式吗? 同样在JDO的文档中,似乎直接实例化并不是默认选项,而是使用包裹在中。如何正确实例化这些bean并使它们与Spring的注释一起使用。 这是我的应用程序上下文中与持久性相关的部分: 现在,当我加载访问数据存储的页面时

  • 问题内容: 我有点问题。我需要在此拦截器中调用每个请求的postHandle方法: 所以我将这一行放入servlet配置中,一切正常。 但是现在我必须更改配置和使用 通过这种配置,我在postHandle方法中的modelAndView上得到了一系列空指针异常,因为每个请求多次调用postHandle方法。 使用此配置,它可以工作,但仅适用于请求serverAdress /任何东西。对于请求ser

  • 我是春靴的新手。我有一个跑步Spring靴项目。我想使用log4j2(由于项目限制,我必须使用log4j2本身)将不同级别的所有日志重定向到一个名为'test.log'的日志文件。 ---我的测试API的控制器也有以下测试日志行: ---在我的理解中,我已经在代码中包含了所有必需的内容。但是我面临着这个问题--当我使用API时,只有hibernate调试记录器被添加到test.log中;我在con

  • 我使用这个命令运行我的spring应用程序-java-jar,但是当从IDE运行应用程序时,我需要添加运行配置,下面是显示我所添加内容的屏幕截图,但是它对我不起作用。

  • 这个问题是关于Spring中的Java config。是否可以用Java代码替换下面的声明。 其中:secure-app-context.xml