首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jolt Customer Transformer a Spring Bean

Jolt Customer Transformer a Spring Bean
EN

Stack Overflow用户
提问于 2020-06-25 19:47:41
回答 1查看 210关注 0票数 0

我有一个spring boot应用程序,我在jolt规范中使用了自定义jolt转换器,如下所示。

代码语言:javascript
运行
复制
  {
    "operation": "com.transformers.CustomJoltTransformer"
  },

CustomJoltTransformer.java是一个Spring Bean。有没有办法将这个spring bean直接传递给jolt,而不是Jolt为我创建bean?我将它定义为`@component,因为我需要根据不同的配置文件从application.yml加载user的值。

代码语言:javascript
运行
复制
@Component
public class CustomJoltTransformer implements Transform {

@Value("${app.user}")
private String user;

public String getUser() {
    return user;
}

public void setUser(String user) {
    this.user = user;
}

@Override
public Object transform(Object input) {
    Map inputMap = (Map) input;
    ...
    inputMap.put("user", getUser());
    return inputMap;
}

}

EN

回答 1

Stack Overflow用户

发布于 2020-06-26 02:01:24

fromSpec是一种重载方法,如果你不想使用默认方法,你也可以选择传递chainrInstantiator。

Chainr.fromSpec(JsonUtils.classpathToList(path), chainrInstantiator)

下面是我的Custom Instantiator代码

代码语言:javascript
运行
复制
@Component
public class CustomChainrInstantiator extends DefaultChainrInstantiator implements ChainrInstantiator {

    @Autowired
    private CustomJoltTransformer customJoltTransformer;

    @Override
    public JoltTransform hydrateTransform(ChainrEntry entry) {
        if ("CustomJoltTransformer".equalsIgnoreCase(entry.getJoltTransformClass().getSimpleName())) {
            return customJoltTransformer;
        }
        return super.hydrateTransform(entry);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62574589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档