当前位置: 代码网 > it编程>编程语言>Javascript > Spring Boot根据配置暴露接口的代码实现

Spring Boot根据配置暴露接口的代码实现

2024年11月25日 Javascript 我要评论
springboot 在 org.springframework.boot.autoconfigure.condition 包下提供了很多 conditionalonxxx 格式的条件注解,如 con

springboot 在 org.springframework.boot.autoconfigure.condition 包下提供了很多 conditionalonxxx 格式的条件注解,如 conditionalonbeanconditionalonmissingbeanconditionalonclassconditionalonmissingclass 等。这些类名起的非常好,很直观的可以理解其功能,具体使用哪些可以根据业务需要来选择。

本示例要实现的效果:在非生产环境下暴露测试用的接口。

使用到的注解:@conditionalonexpressionconditionalonbean

首先定义一个 testenvironment 的类:

import org.springframework.boot.autoconfigure.condition.conditionalonexpression;
import org.springframework.stereotype.component;

@component
@conditionalonexpression("'${my-app.env}' != 'prod'")
public class testenvironment {
}

上面 @conditionalonexpression 注解参数中的 ${my-app.env} 为 spel 表达式,其值从配置文件读取。'${my-app.env}' != 'prod' 表示如果 my-app.env 配置项的值不为 prod,则该类生效。

因为多个地方可能会用到这个判断表达式,所以将其定义为单独的类,以方便使用和维护。

之后在测试用的 controllerservice 上加上 @conditionalonbean(testenvironment.class) 注解即可。

import lombok.requiredargsconstructor;
import org.springframework.boot.autoconfigure.condition.conditionalonbean;
import org.springframework.validation.annotation.validated;
import org.springframework.web.bind.annotation.postmapping;
import org.springframework.web.bind.annotation.requestbody;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;

/**
 * 测试
 *
 * @author jiajia
 */
@validated
@requiredargsconstructor
@restcontroller
@conditionalonbean(testenvironment.class)
@requestmapping("test")
public class testcontroller extends basecontroller {

    private final testservice testservice;

    /**
     * 支付测试接口
     */
    @postmapping("/pay")
    public r<void> pay(@validated @requestbody payparam param) {
        return testservice.pay(param);
    }
}

对应的测试用 service 也是相同的写法:

@service
@requiredargsconstructor
@conditionalonbean(testenvironment.class)
public class testserviceimpl implements testservice {
    // ...
}

到此这篇关于spring boot根据配置暴露接口的代码实现的文章就介绍到这了,更多相关spring boot暴露接口内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com