欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot?整合?ElasticSearch操作各種高級(jí)查詢搜索

 更新時(shí)間:2022年06月01日 09:21:53   作者:鴨血粉絲Tang  
這篇文章主要介紹了SpringBoot?整合?ES?進(jìn)行各種高級(jí)查詢搜索的實(shí)踐記錄,本文主要圍繞?SpringBoot?整合?ElasticSearch?進(jìn)行各種高級(jí)查詢的介紹,需要的朋友可以參考下

一、簡(jiǎn)介

在上篇? SpringBoot 整合 ElasticSearch??? 文章中,我們?cè)敿?xì)的介紹了 ElasticSearch 的索引和文檔的基本增刪改查的操作方法!

本文將重點(diǎn)介紹 ES 的各種高級(jí)查詢寫(xiě)法和使用。

廢話不多說(shuō),直接上代碼!

二、代碼實(shí)踐

本文采用的SpringBoot版本號(hào)是2.1.0.RELEASE,服務(wù)端 es 的版本號(hào)是6.8.2,客戶端采用的是官方推薦的Elastic Java High Level Rest Client版本號(hào)是6.4.2,方便與SpringBoot的版本兼容。

es 最大的亮點(diǎn)就是查詢非常豐富,可以在上億的數(shù)據(jù)里面快速搜索出目標(biāo)數(shù)據(jù),查詢?nèi)绻麑?shí)現(xiàn)呢?請(qǐng)看下文:

  • 單條件精確查詢
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 單條件精確查詢
     * @throws IOException
     */
    @Test
    public void search0() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.termsQuery("name", "趙里"));

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 多條件精確查詢,取并集
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {
    @Autowired
    private RestHighLevelClient client;

    /**
     * 多條件精確查詢,取并集
     * @throws IOException
     */
    @Test
    public void search1() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.termsQuery("name", "張", "陳"));

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 范圍查詢
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {
    @Autowired
    private RestHighLevelClient client;
    /**
     * 范圍查詢,包括from、to
     * @throws IOException
     */
    @Test
    public void search2() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.rangeQuery("age").from(20).to(32));
        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }

    /**
     * 范圍查詢,不包括from、to
     * @throws IOException
     */
    @Test
    public void search3() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.rangeQuery("age").from(20,false).to(30, false));
        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }

    /**
     * 范圍查詢, lt:小于,gt:大于
     * @throws IOException
     */
    @Test
    public void search4() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.rangeQuery("age").lt(30).gt(20));
        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 模糊查詢,支持通配符
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 模糊查詢,支持通配符
     * @throws IOException
     */
    @Test
    public void search5() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.wildcardQuery("name","張三"));

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 不使用通配符的模糊查詢,左右匹配
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 不使用通配符的模糊查詢,左右匹配
     * @throws IOException
     */
    @Test
    public void search6() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.queryStringQuery("張三").field("name"));

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 多字段模糊查詢
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {
    @Autowired
    private RestHighLevelClient client;

    /**
     * 多字段模糊查詢
     * @throws IOException
     */
    @Test
    public void search7() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.multiMatchQuery("長(zhǎng)", "name", "city"));

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 多字段模糊查詢
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {
    @Autowired
    private RestHighLevelClient client;
    /**
     * 分頁(yè)搜索
     * @throws IOException
     */
    @Test
    public void search8() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .from(0).size(2);
        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 字段排序
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 排序,字段的類型必須是:integer、double、long或者keyword
     * @throws IOException
     */
    @Test
    public void search9() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .sort("createTime", SortOrder.ASC);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }

}
  • 精確統(tǒng)計(jì)篩選文檔數(shù)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 精確統(tǒng)計(jì)篩選文檔數(shù),查詢性能有所降低
     * @throws IOException
     */
    @Test
    public void search10() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .trackTotalHits(true);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }

}
  • 設(shè)置源字段過(guò)濾返回
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 設(shè)置源字段過(guò)慮,第一個(gè)參數(shù)結(jié)果集包括哪些字段,第二個(gè)參數(shù)表示結(jié)果集不包括哪些字段
     * @throws IOException
     */
    @Test
    public void search11() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .fetchSource(new String[]{"name","age","city","createTime"},new String[]{});

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }

}
  • 根據(jù) id 精確匹配
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 根據(jù)id精確匹配
     * @throws IOException
     */
    @Test
    public void search12() throws IOException {
        String[] ids = new String[]{"1","2"};
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.termsQuery("_id", ids));

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }

}
  • matchAllQuery 搜索全部
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * matchAllQuery搜索全部
     * @throws IOException
     */
    @Test
    public void search21() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.matchAllQuery());

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • match 搜索匹配
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * match搜索匹配
     * @throws IOException
     */
    @Test
    public void search22() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.matchQuery("name", "張王"));

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • bool組合查詢
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * bool組合查詢
     * @throws IOException
     */
    @Test
    public void search23() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder();

        BoolQueryBuilder boolQueryBuilder=new BoolQueryBuilder();
        boolQueryBuilder.must(QueryBuilders.matchQuery("name", "張王"));
        boolQueryBuilder.must(QueryBuilders.rangeQuery("age").lte(30).gte(20));
        builder.query(boolQueryBuilder);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • nested 類型嵌套查詢
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * nested類型嵌套查詢
     * @throws IOException
     */
    @Test
    public void search24() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder();

        //條件查詢
        BoolQueryBuilder mainBool=new BoolQueryBuilder();
        mainBool.must(QueryBuilders.matchQuery("name", "趙六"));

        //nested類型嵌套查詢
        BoolQueryBuilder boolQueryBuilder=new BoolQueryBuilder();
        boolQueryBuilder.must(QueryBuilders.matchQuery("products.brand", "A"));
        boolQueryBuilder.must(QueryBuilders.matchQuery("products.title", "巧克力"));
        NestedQueryBuilder nested = QueryBuilders.nestedQuery("products",boolQueryBuilder, ScoreMode.None);
        mainBool.must(nested);

        builder.query(mainBool);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 多條件查詢 + 排序 + 分頁(yè)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 多條件查詢 + 排序 + 分頁(yè)
     * @throws IOException
     */
    @Test
    public void search29() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder();

        //條件搜索
        BoolQueryBuilder boolQueryBuilder=new BoolQueryBuilder();
        boolQueryBuilder.must(QueryBuilders.matchQuery("name", "張王"));
        boolQueryBuilder.must(QueryBuilders.rangeQuery("age").lte(30).gte(20));
        builder.query(boolQueryBuilder);

        //結(jié)果集合分頁(yè)
        builder.from(0).size(2);

        //排序
        builder.sort("createTime",SortOrder.ASC);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 聚合查詢-求和
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 聚合查詢 sum
     * @throws IOException
     */
    @Test
    public void search30() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder();

        //條件搜索
        builder.query(QueryBuilders.matchAllQuery());
        //聚合查詢
        AggregationBuilder aggregation = AggregationBuilders.sum("sum_age").field("age");
        builder.aggregation(aggregation);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 聚合查詢-求平均值
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 聚合查詢 avg
     * @throws IOException
     */
    @Test
    public void search31() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder();

        //條件搜索
        builder.query(QueryBuilders.matchAllQuery());
        //聚合查詢
        AggregationBuilder aggregation = AggregationBuilders.avg("avg_age").field("age");
        builder.aggregation(aggregation);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 聚合查詢-計(jì)數(shù)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 聚合查詢 count
     * @throws IOException
     */
    @Test
    public void search32() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder();

        //條件搜索
        builder.query(QueryBuilders.matchAllQuery());
        //聚合查詢
        AggregationBuilder aggregation = AggregationBuilders.count("count_age").field("age");
        builder.aggregation(aggregation);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}
  • 聚合查詢-分組
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ElasticSearchApplication.class)
public class SearchJunit {

    @Autowired
    private RestHighLevelClient client;

    /**
     * 聚合查詢 分組
     * @throws IOException
     */
    @Test
    public void search33() throws IOException {
        // 創(chuàng)建請(qǐng)求
        SearchSourceBuilder builder = new SearchSourceBuilder();

        //條件搜索
        builder.query(QueryBuilders.matchAllQuery());
        //聚合查詢
        AggregationBuilder aggregation = AggregationBuilders.terms("tag_createTime").field("createTime")
                .subAggregation(AggregationBuilders.count("count_age").field("age")) //計(jì)數(shù)
                .subAggregation(AggregationBuilders.sum("sum_age").field("age")) //求和
                .subAggregation(AggregationBuilders.avg("avg_age").field("age")); //求平均值

        builder.aggregation(aggregation);

        //不輸出原始數(shù)據(jù)
        builder.size(0);

        //搜索
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("cs_index");
        searchRequest.types("_doc");
        searchRequest.source(builder);
        // 執(zhí)行請(qǐng)求
        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查詢結(jié)果
        System.out.println(response.toString());
    }
}

三、小結(jié)

本文主要圍繞 SpringBoot 整合 ElasticSearch 進(jìn)行各種高級(jí)查詢的介紹,在下篇文章中,我們會(huì)重點(diǎn)介紹 es 的性能調(diào)優(yōu)!

到此這篇關(guān)于SpringBoot 整合 ElasticSearch操作各種高級(jí)查詢搜索的文章就介紹到這了,更多相關(guān)SpringBoot 整合 ES 查詢搜索內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springmvc用于方法鑒權(quán)的注解攔截器的解決方案代碼

    springmvc用于方法鑒權(quán)的注解攔截器的解決方案代碼

    這篇文章主要介紹了springmvc用于方法鑒權(quán)的注解攔截器的解決方案代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java獲取彩色圖像中的主色彩的實(shí)例代碼

    Java獲取彩色圖像中的主色彩的實(shí)例代碼

    這篇文章主要介紹了Java獲取彩色圖像中的主色彩的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Spring Boot教程之利用ActiveMQ實(shí)現(xiàn)延遲消息

    Spring Boot教程之利用ActiveMQ實(shí)現(xiàn)延遲消息

    這篇文章主要給大家介紹了關(guān)于Spring Boot教程之利用ActiveMQ實(shí)現(xiàn)延遲消息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Spring?Boot項(xiàng)目集成Knife4j接口文檔的實(shí)例代碼

    Spring?Boot項(xiàng)目集成Knife4j接口文檔的實(shí)例代碼

    Knife4j就相當(dāng)于是swagger的升級(jí)版,對(duì)于我來(lái)說(shuō),它比swagger要好用得多<BR>,這篇文章主要介紹了Spring?Boot項(xiàng)目集成Knife4j接口文檔的示例代碼,需要的朋友可以參考下
    2021-12-12
  • 自定義spring mvc的json視圖實(shí)現(xiàn)思路解析

    自定義spring mvc的json視圖實(shí)現(xiàn)思路解析

    這篇文章主要介紹了自定義spring mvc的json視圖的實(shí)現(xiàn)思路解析,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Java中線程安全有哪些實(shí)現(xiàn)思路

    Java中線程安全有哪些實(shí)現(xiàn)思路

    在 Java 多線程編程中,線程安全是一個(gè)非常重要的概念,本文主要介紹了Java中線程安全有哪些實(shí)現(xiàn)思路,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Spring中@PropertySource注解使用場(chǎng)景解析

    Spring中@PropertySource注解使用場(chǎng)景解析

    這篇文章主要介紹了Spring中@PropertySource注解使用場(chǎng)景解析,@PropertySource注解就是Spring中提供的一個(gè)可以加載配置文件的注解,并且可以將配置文件中的內(nèi)容存放到Spring的環(huán)境變量中,需要的朋友可以參考下
    2023-11-11
  • 最全MyBatis核心配置文件總結(jié)(收藏)

    最全MyBatis核心配置文件總結(jié)(收藏)

    這篇文章主要介紹了最全MyBatis核心配置文件總結(jié)(收藏),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié)

    使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié)

    今天遇到一個(gè)小需求,當(dāng)用戶上傳了一個(gè)關(guān)于用戶數(shù)據(jù)的列表,我們需要將其與數(shù)據(jù)庫(kù)中已有的用戶數(shù)據(jù)進(jìn)行比較,所以本文給大家介紹了使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié),文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • 帶你了解Java Maven的打包操作

    帶你了解Java Maven的打包操作

    這篇文章主要介紹了Maven打包的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論