8.12 SpringBoot集成ElasticSearch之拦截器

本文介绍了如何在eBatis中通过SPI加载拦截器,以EmployeeInterceptor为例,展示了其实现过程,包括异常处理、请求与响应的拦截操作。在测试中,通过Postman请求接口,观察控制台输出的日志信息,验证拦截器功能的正确性。
摘要由CSDN通过智能技术生成

1.简介
eBatis中拦截器的加载通过SPI方式实现,只需要提供的目标类实现io.manbang.ebatis.core.interceptor.Interceptor接口,在目标类上加上注解@AutoService(Interceptor.class),由auto-service生成。

2.interceptor开发
在项目目录“/src/main/java/com/example/es”下新建interceptor目录,并在interceptor目录下新建EmployeeInterceptor类,EmployeeInterceptor类需要实现Interceptor接口,具体代码如下。

@Slf4j
@AutoService(Interceptor.class)
public class EmployeeInterceptor implements Interceptor {
    @Override
    public int getOrder() {
        return 0;
    }

    @Override
    public void handleException(Throwable throwable) {
        log.error("throwable:{}", throwable);
    }

    @Override
    public <T extends ActionRequest> void postRequest(RequestInfo<T> requestInfo) {
        log.info("requestInfo1:{}", requestInfo);
        log.info("requestInfo2:{}", requestInfo.actionRequest());
        log.error("requestInfo employeeId:{}", ContextHolder.getString("employeeId"));
    }

    @Override
    public <T extends ActionRequest> void preResponse(PreResponseInfo<T> preResponseInfo) {
        log.error("preResponseInfo employeeId:{}", ContextHolder.getString("employeeId"));
    }

    @Override
    public <T extends ActionRequest, R extends ActionResponse> void postResponse(PostResponseInfo<T, R> postResponseInfo) {
        log.info("postResponseInfo:{}", postResponseInfo.actionResponse());
        log.error("postResponseInfo employeeId:{}", ContextHolder.<String>getValue("employeeId"));
    }
}

3.测试
启动项目,然后在postman中请求“http://localhost:8080/employee/queryEmployeePage”,成功后可在控制台输出如下的信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,目前最新版本的Elasticsearch是7.12.1,没有8.12.2版本。不过我可以告诉你如何创建连接到Elasticsearch的步骤。 要连接到Elasticsearch,你需要使用一个Elasticsearch客户端库。这些库可以用于不同的编程语言,比如Java、Python、Node.js等。以下是一个通用的连接步骤: 1. 安装Elasticsearch:首先,你需要在你的机器上安装Elasticsearch。你可以从Elasticsearch官方网站下载并按照它们的安装指南进行安装。 2. 安装适当的客户端库:根据你选择的编程语言,安装相应的Elasticsearch客户端库。例如,如果你使用Java,你可以使用Elasticsearch官方提供的Java High-Level REST Client或者其他第三方库。 3. 创建连接:在你的代码中,使用客户端库提供的API来创建与Elasticsearch的连接。通常,你需要指定Elasticsearch集群的主机名和端口号。 4. 进行操作:一旦连接建立成功,你就可以使用客户端库提供的方法来执行各种操作,比如索引文档、搜索、删除等。 下面是一个Java代码示例,展示了如何使用Java High-Level REST Client创建连接到Elasticsearch: ```java import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; public class ElasticsearchConnection { public static void main(String[] args) { // 创建连接 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http"))); // 执行操作 // ... // 关闭连接 try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 这是一个简单的示例,你可以根据具体的需求和客户端库的文档来进行更复杂的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值