java - 反序列化类中的 Autowiring

标签 java spring jackson autowired

如何在反序列化类中 Autowiring ?

这是映射类:

@Component
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonNaming(PropertyNamingStrategy.PascalCaseStrategy.class)
public class Container {


    @Autowired
    private CalcResourceUsage calcResourcePercentage;
    private ContainerStats containerStats;
    @Autowired
    private AverageResourceUsage averageResourceUsage;

    public Container(){
        SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
    }


    private String Id;


    private List<String> Names;

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

    public List<String> getNames() {
        return Names;
    }

    public void setNames(List<String> names) {
        Names = names;
    }

    public CalcResourceUsage getCalcResourcePercentage() {
        return calcResourcePercentage;
    }


    public AverageResourceUsage getAverageResourceUsage() {
        return averageResourceUsage;
    }

    public ContainerStats getContainerStats() {
        return containerStats;
    }

    public void setContainerStats(ContainerStats containerStats) {
        this.containerStats = containerStats;
    }
}

所以我使用 jackson 将对象映射到这个类中,使用这行代码:

Container[] containers = syncRestTemplate.getForObject(address + "json", Container[].class);

然后我有一个数组,我需要为每个容器做一些计算,如果我可以 Autowiring CalcResourceUsageAverageResourceUsage,我可以为每个容器做一些计算。

当前 getAverageResourceUsage()getCalcResourcePercentage() 返回 null

最佳答案

可以将反序列化后的对象传递给AutowireCapableBeanFactory进行布线(使用autowireBean()方法)。

例子:

@Autowired
private AutowireCapableBeanFactory beanFactory;

public void doDeserialization() {

   Container[] containers = // get them via jackson
   for (Container container : containers) {
      beanFactory.autowireBean(container);
      // container will now have its dependencies autowired.
   }
}

关于java - 反序列化类中的 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35436279/

相关文章:

java - 如何获取每天随着天数递增的输出

java - 如何在 Tomcat 中使用 spring 样式的属性文件配置 quartz 调度程序?

java - 将字段传递给自定义反序列化器类 Jackson

java - 将 JsonNode 转换为 POJO

java - 如何使用 Java API 在 facebook 上查找好友列表中的其他好友

java - 露天 : Java delegate how can i all details from DB using acvitit Intance Id

java - org.springframework.jms.support.converter.MappingJackson2MessageConverter 线程安全吗?

java - 将 MongoDB ObjectId 序列化为字符串

java - Vaadin 最新版本中的树组件不起作用

java - Spring MVC - 没有在 JSP View 中获得值(value)