最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring常用注解及自定義Filter的實(shí)現(xiàn)

 更新時(shí)間:2019年08月16日 09:43:41   作者:碼莎拉蒂  
這篇文章主要介紹了Spring常用注解及自定義Filter的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

@Configuration通常用在配置類(lèi)上,告訴spring這是一個(gè)配置類(lèi)(配置類(lèi)類(lèi)似配置文件,區(qū)別在于用類(lèi)的形式來(lái)表現(xiàn)xml;

@Service用于標(biāo)注業(yè)務(wù)層組件service層,

@Controller用于標(biāo)注控制層組件(如struts中的action) ,

@Repository用于標(biāo)注數(shù)據(jù)訪(fǎng)問(wèn)組件,即DAO組件,

@component把普通pojo實(shí)例化到spring容器中,相當(dāng)于配置文件中的 <bean id="" class=""/>

使用@Configuration會(huì)掃描以上四種注解聲明的類(lèi)。

@Bean在配置類(lèi)中使用時(shí),表示這是一個(gè)JavaBean。

例如:

//配置類(lèi) == 配置文件
@ComponentScan(value = "com.spring") // 告訴spring這個(gè)是一個(gè)配置類(lèi)
})
public class MainConfig {
 
 // 注冊(cè)一個(gè)bean,類(lèi)型為返回值的類(lèi)型,id默認(rèn)用方法名
 @Bean
 public Person person1() {
 return new Person("張三", 20);
 }
 
  //可以為bean定義id
 @Bean("student")
 public Person person2() {
 return new Person("韓梅梅", 12);
 }
 
}

@ComponentSan value:指定要掃描的包
    excludeFilters = Filter[] :指定掃描的時(shí)候按照什么規(guī)則排除哪些組件
    includeFilters = Filter[] :指定掃描的時(shí)候只需要包含哪些組件
        FilterType.ANNOTATION:注解類(lèi)型
        FilterType.ASSIGNABLE_TYPE:按照指定的類(lèi)型,如指定BookService,會(huì)查找BookService本身,及其子類(lèi)
        FilterType.ASPECTJ:使用ASPECTJ表達(dá)式,不經(jīng)常使用
        FilterType.REGEX:使用正則表達(dá)式
        FilterType.CUSTOM:使用自定義表達(dá)式

@ComponentScan排除掃描類(lèi)型

@ComponentScan(value = "com.spring", excludeFilters = {//排除指定的掃描類(lèi)型
 //過(guò)濾注解類(lèi)型  @Controller @Repository
 @Filter(type = FilterType.ANNOTATION, classes = { Controller.class,Repository.class }) 
})

@ComponentScan掃描指定類(lèi)型

@ComponentScan(value = "com.spring", includeFilters = {//指定的掃描類(lèi)型
 //過(guò)濾注解類(lèi)型  @Controller @Repository
 @Filter(type = FilterType.ANNOTATION, classes = { Controller.class,Repository.class }) 
},useDefaultFilters = false)//注意,使用掃描指定類(lèi)型時(shí),需要配置useDefaultFilters = false 禁用默認(rèn)規(guī)則

@ComponentScans可以理解為@ComponentScan數(shù)組,可以配置多個(gè)@ComponentScan

@ComponentScans(value= {
 @ComponentScan(value = "com.spring", includeFilters = {//指定的掃描類(lèi)型
  //過(guò)濾注解類(lèi)型  @Controller @Repository
  @Filter(type = FilterType.ANNOTATION, classes = { Controller.class,Repository.class }) ,
                //指定類(lèi)型
  @Filter(type = FilterType.ASSIGNABLE_TYPE,classes = (BookService.class)),
                //自定義
  @Filter(type = FilterType.CUSTOM,classes = (MyTypeFilter.class))
 },useDefaultFilters = false)//注意,使用掃描指定類(lèi)型時(shí),需要配置useDefaultFilters = false 禁用默認(rèn)規(guī)則
})

自定義包含規(guī)則

public class MyTypeFilter implements TypeFilter {
 
 /**
  * 返回true匹配成功,返回false匹配失敗 
 * metadataReader 讀取到的當(dāng)前正在掃描的類(lèi)的信息
 * metadataReaderFactory 可以獲取到其他任何類(lèi)的信息
 */
 public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
  throws IOException {
 //獲取當(dāng)前類(lèi)注解的信息
 AnnotationMetadata nnnotationmetadata = metadataReader.getAnnotationMetadata();
 //獲取當(dāng)前正在掃描的類(lèi)的類(lèi)信息
 ClassMetadata classMetadata = metadataReader.getClassMetadata();
 //獲取當(dāng)前類(lèi)的資源信息(類(lèi)的路徑)
 Resource resource = metadataReader.getResource();
 
 String className = classMetadata.getClassName();
 System.out.println(">>>>"+className);
 if(className.contains("er")) {
  return true;
 }
 return false;
 }
 
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

望城县| 宿迁市| 洪洞县| 湘潭县| 县级市| 荣成市| 桂林市| 喀什市| 厦门市| 乐业县| 体育| 兴仁县| 通河县| 综艺| 凉城县| 乌拉特中旗| 申扎县| 苍溪县| 凉城县| 曲周县| 凤山市| 靖宇县| 沙洋县| 郓城县| 凤台县| 五华县| 孙吴县| 灵武市| 汨罗市| 新丰县| 沙河市| 从江县| 治县。| 平顶山市| 平阴县| 克什克腾旗| 锡林浩特市| 湛江市| 陆良县| 石楼县| 茌平县|