91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Springboot中如何使用@ComponentScan中excludeFilters

發布時間:2021-06-22 17:45:48 來源:億速云 閱讀:2089 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Springboot中如何使用@ComponentScan中excludeFilters,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

首先這邊先給出基礎的service類,該類我想在springboot加載過程中取消自動注入。

@Service注解的類

package com.wyq.test;import org.springframework.stereotype.Service;/** * @Author: wuyiqi * @Date: 2021-05-10 10:35 * @Description: */@Service("myBeanService")public class MyService {
}

@ComponentScan中excludeFilters使用

@ComponentScan可以設置includeFilters和excludeFilters,來自定義過濾器。一般excludeFilters用的比較多。

一、 過濾指定的類名

type = FilterType.ASSIGNABLE_TYPE是根據類class來過濾,后面classes指向類名

package com.wyq.test;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.FilterType;/** * @Author: wuyiqi * @Date: 2021-05-10 10:35 * @Description: */@SpringBootApplication@ComponentScan(value = "com.wyq.test", excludeFilters = {      @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {MyService.class})})public class TestApplication {   //和上面一樣,省略}

這邊注意下 MyService.class 就是上述的類,通過 FilterType.ASSIGNABLE_TYPE 可以直接指定這個類不進行自動注入。

二、過濾指定的注解

com.wyq.test包和子包下,排除有@Service注解的類

package com.wyq.test;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.FilterType;import org.springframework.stereotype.Service;/** * @Author: wuyiqi * @Date: 2021-05-10 10:35 * @Description: */@SpringBootApplication@ComponentScan(value = "info.pigg.study.java", excludeFilters = {      @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {Service.class})})public class DictApplication {
}

三、自定義過濾

type = FilterType.CUSTOM,是自定義過濾,classes 指定的類要實現TypeFilter接口,在match方法中可以獲取當前掃描到的類的信息,比如注解、類名和類路徑

package com.wyq.test;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.FilterType;import org.springframework.stereotype.Service;/** * @Author: wuyiqi * @Date: 2021-05-10 10:35 * @Description: */@SpringBootApplication@ComponentScan(value = "info.pigg.study.java", excludeFilters = {      @ComponentScan.Filter(type = FilterType.CUSTOM, classes = {MyTypeFilter.class})})public class DictApplication {
}

在類名包含"MyService"時,match方法返回true,這樣在excludeFilters時,包含"MyService"的類就會被排除掉

package com.wyq.test;import org.springframework.core.io.Resource;import org.springframework.core.type.AnnotationMetadata;import org.springframework.core.type.ClassMetadata;import org.springframework.core.type.classreading.MetadataReader;import org.springframework.core.type.classreading.MetadataReaderFactory;import org.springframework.core.type.filter.TypeFilter;/** * @Author: wuyiqi * @Date: 2021-05-10 10:35 * @Description: */public class MyTypeFilter implements TypeFilter
{   @Override   public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
   {      //獲取當前類注解的信息      AnnotationMetadata annotationMetadata = metadataReader.getAnnotationMetadata();      //獲取當前類資源(類的路徑)      Resource resource = metadataReader.getResource();

      ClassMetadata classMetadata = metadataReader.getClassMetadata();
      System.out.println("當前正在被掃描的類的類名" + classMetadata.getClassName());      if (classMetadata.getClassName().contains("MyService"))
      {         return true;
      }      return false;
   }
}

關于Springboot中如何使用@ComponentScan中excludeFilters就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台州市| 玉溪市| 罗源县| 天台县| 兴国县| 雷州市| 固始县| 正镶白旗| 宜州市| 呈贡县| 金堂县| 闸北区| 唐山市| 黔东| 景泰县| 通许县| 南溪县| 高尔夫| 类乌齐县| 永嘉县| 岚皋县| 宿州市| 古浪县| 普定县| 伊金霍洛旗| 于都县| 运城市| 沁源县| 商城县| 彭山县| 石狮市| 且末县| 绥滨县| 南投县| 定安县| 个旧市| 修水县| 定结县| 海阳市| 山丹县| 搜索|