Spring 控制器根据条件配置是否启用
如果需要根据特定条件动态地启用或禁用Controller,可以使用Spring的条件注解@Conditional。
简单的条件可以直接使用:
@ConditionalOnProperty(prefix = "spring", name = "example.values")
或者
@ConditionalOnProperty(name = "spring.example.values")
以下是一个使用@Conditional注解来根据属性是否存在来启用或禁用Controller的示例:
import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.AnnotatedTypeMetadata; public class MyCondition implements Condition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { // 检查某个属性是否存在,如果存在则返回true,Controller将被创建 return context.getEnvironment().containsProperty("my.custom.property"); } } import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.mvc.Controller; @Configuration public class MyControllerConfig { @Bean @Conditional(MyCondition.class) public Controller myController() { // 实例化并返回Controller return new MyCustomController(); } }
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号