您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

可以有条件地声明spring bean吗?

可以有条件地声明spring bean吗?

你可以使用@Conditional从spring4或@ConditionalOnProperty从springBoot.。

首先,创建一个Condition类,在其中ConditionContext可以访问Environment

public class MyCondition implements Condition {
    @Override
    public boolean matches(ConditionContext context,
                           AnnotatedTypeMetadata Metadata) {
        Environment env = context.getEnvironment();
        return null != env
                && "true".equals(env.getProperty("server.host"));
    }
}

然后注释你的bean:

@Bean
@Conditional(MyCondition.class)
public ObservationWebSocketClient observationWebSocketClient() {
    //return bean
}

2.使用Spring Boot:

@ConditionalOnProperty(name="server.host", havingValue="localhost")

在你的abcd.properties文件

server.host=localhost
Java 2022/1/1 18:17:10 有380人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶