如何提供定制的依赖解析逻辑?

时间:2018-01-24 05:41:25

标签: spring

这是我的需求:

AbcRequest有一个名为requestBody的字段,需要自动连接。在下面的代码中,如果spring无法找到带有" requestBody"的bean限定符,它将抛出异常,但我需要的是如果找不到,它将注入默认实现身体。基本上它是"依赖解析器"有一个后备策略 - 首先根据某个名称键查找,如果没有找到,则根据类型进行查找。

@Component
public class AbcRequest {
    @Autowired
    @Qualifier("requestBody")
    private Body requestBody
}

1 个答案:

答案 0 :(得分:0)

您可以定义两个引用,并使用限定符进行注释不是必需的。然后只需添加一条消息即可返回现有的

@Component
public class AbcRequest {
    @Autowired(required = false)
    @Qualifier("requestBody")
    private Body requestBody

    @Autowired
    private Body defaultBody

    public Body getBody() {
        return requestBody != null ? requestBody : defaultBody;
    }
}