如何在上下文xml文件中配置具有null返回的spring bean

时间:2018-02-07 23:29:05

标签: java spring

如果我们可以在spring xml

中转换下面的java bean,有没有办法呢
@Bean(name = "tls")
public SslContextFactory getSslContextFactory() {
    return null;
}

我尝试设置如下

<bean id="tls" class="abc.SslContextFactory"/>

但它返回一个对象,所有值都设置为null。但是,上面的java bean工作正常,并按预期返回null。我尝试设置如下,

<bean id="tls" class="abc.SslContextFactory">
<null/>
</bean>

但它在语法上是错误的。

我是春天的新手,正在进行多项实验,以了解有关春天的更多信息。任何建议表示赞赏:)

2 个答案:

答案 0 :(得分:1)

如果您只是在某个地方自动装配这个bean,可以像这样使用 -

@Autowired(required = false)
private SslContextFactory tls;

此外,您不必在xml中声明任何内容。如果没有找到bean定义,@Autowired(required = false)会将其设置为null

答案 1 :(得分:0)

您需要使用spring FactoryBean。

public class SslContextNullFactory  implements FactoryBean<Void> {

    public Void getObject() throws Exception {
        return null;
    }

    public Class<? extends Void> getObjectType() {
        return null;
    }

    public boolean isSingleton() {
        return true;
    }
}

<bean id="tls" class = "abc.SslContextNullFactory" />